美文网首页
C学习:07-数组

C学习:07-数组

作者: 放纵的卡尔 | 来源:发表于2019-04-16 14:50 被阅读0次
//
// Created by 87572 on 19/4/15.
//

#include "part1.h"

/**
 * K1:==============================================================
 * 数组介绍.数组就是连续的内存.
 *
 */
void print_array(int arr[], int len) {
    for (int i = 0; i < len; ++i) {
        cout << "arr[ " << i << " ]" << arr[i] << endl;
    }
}

void init_arrary() {
    int arr1[] = {1, 2, 3, 4, 5};
    int arr2[5] = {1, 2};
    int arr3[5] = {1};
    print_array(arr1, 5);
    print_array(arr2, 5);
    print_array(arr3, 5);
}

/**
 * K2:==============================================================
 *计算数组大小
 * sizeof(array)数组所占空间的总大小
 * sizeof(array)/sizeof(element)数组的length大小
 *
 */
void cal_size_array() {

    int arr[10] = {1};
    cout << "array total size:  " << sizeof(arr) << endl;
    cout << "array length:   " << sizeof(arr) / sizeof(int) << endl;
}

/**
 * K3:==============================================================
 * 数组的名 int arr[] ; arr就是常量指针,指向的就是数组首元素.(传递数据最合理)
 * arr与int*的区别: 1.arr当作形参的时候,退化成指针.
 * ----------------2.sizeof(arr) 取得是整个数组的大小.
 * ----------------3.&arr 是数组指针.
 * &arr,则是数组指针. int (*p) [10];   这个也是指向的首地址,但是步长是整个数组大小;
 * important:
 * ----int (*p) [10]=&arr;
 * ----int *q=*p;
 *  指针并不是简单的取所在地址的内容,还要看指针的类型.虽然数组指针指向的是一个int,
 *  但是解引用之后,是一个int*,是因为他是一个数组指针.所以仍是int *;
 */
void real_of_array() {

    int arr[10] = {1};
    printf("&arr, %d\n  ", &arr);
    printf("&arr[0], %d\n  ", &arr[0]);
    int (*p)[10] = &arr;
    printf("int (*p) [10], %d\n  ", p);
    int *q = *p;

}


/**
 * K4:==============================================================
 *  二维数组
 *  二维数组也是连续的空间.数组名代表了首数组的数组指针.
 *
 */
void print_two_array(int arr[][3], int len1, int len2) {
    for (int i = 0; i < len1; ++i) {
        for (int j = 0; j < len2; ++j) {
            cout << "arr" << arr[i][j] << endl;
        }
    }

}

void define_two_array() {

    int arr[2][3] = {

            {1, 2, 3},
            {4, 5, 6}

    };
    int (*p)[3] = arr;

    print_two_array(arr, 2, 3);
}


/**
 * K5:==============================================================
 *  数组逆置
 */
void inverse_array() {
    int arr[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9,10};
    int start = 0;
    int end = 9;
    while (start < end) {
        int tmp = arr[start];
        arr[start] = arr[end];
        arr[end] = tmp;
        ++start;
        --end;
    }
    for (int i = 0; i <10; ++i) {

        cout<<"inverse array :  "<<arr[i]<<endl;
    }
}










相关文章

  • C学习:07-数组

  • 31号c#总结

    31号 在c#的基础上学习数组,从五个方面学习数组,数组的概念,一维数组,多维数组,交错数组,Arry类的使用。数...

  • Kotlin学习之数组

    Kotlin学习之数组 @(Kotlin学习) Kotlin中的数组采用Array类定义,抛弃了类C语言中“...

  • C++声明数组

    C++学习 C++中创建数组的方式有三种方式

  • 数组(更新...)

    在学习语言时,我们都会遇到数组.大学期间学过C,C++,Java,C#.这些语言中都学了数组,那时候用的不多,概念...

  • c++零碎问题记录

    2020年3月6日,正式开始学习C++。记录leetcode上遇到东西; 1.C++使用变量作为数组长度 数组长度...

  • c#10月31号

    上午学习了数组,新学了交错数组,数组的知识点比较简单,和之前c和c++差不多,差别在于声明和引用有点不同。下午先练...

  • 2015年iOS开发整理总结

    C语言学习总结# 难点和重点## 重要知识点回顾## 数组的使用 Objective-C学习总结# 网络阶段## ...

  • 9-29学习总结

    今天学习了对象数组: 1.CObArray类支持CObject指针数组。这些对象数组近似于C中的数组,但不同的是它...

  • C语言

    C 指针、指针变量、函数指针、指针函数、指针数组、数组指针、C 数组

网友评论

      本文标题:C学习:07-数组

      本文链接:https://www.haomeiwen.com/subject/kjebwqtx.html