数组是一个整体,它的内存是连续的;也就是说,数组元素之间是相互挨着的,彼此之间没有一点点缝隙。
连续的内存为指针操作(通过指针来访问数组元素)和内存处理(整块内存的复制、写入等)提供了便利,这使得数组可以作为缓存(临时存储数据的一块内存)使用。
创建数组必须先分配内存,如果初始化的时候就赋值就可以无需设置长度,编译器会自动推算,如果初始化没有赋值,就必须先给出数组长度

一维数组

  • 创建数组:

    1. //dataType arrayName[length]
    2. int arr[] = {1,2,3,4,5,6} //如果一开始就赋值,可以不用给出数组的长度
    3. int arr1[6];
    4. float arr2[6]; //创建一个长度为6的浮点数组
  • 如果赋值元素少于初始化数组的长度的话,后面的元素会自动初始化为该数组的数据类型的0

    对于short、int、long,就是整数 0 对于char,就是字符 ‘\0’; 对于float、double,就是小数 0.0

  • 我们可以通过下面的形式将数组的所有元素初始化为 0

    int nums[10] = {0}; char str[10] = {0}; float scores[10] = {0.0};

由于剩余的元素会自动初始化为 0,所以只需要给第 0 个元素赋值为 0 即可。

二维数组

二维数组的初始化可以按行分段赋值,也可按行连续赋值。

  1. // 定义一个整型二维数组 按行分段赋值
  2. int array[2][3] = {{1, 2, 3}, {4, 5, 6}};
  3. // 按行连续赋值
  4. int array1[2][3] = {1, 2, 3, 4, 5, 6};
  5. // 按行连续赋值 第一维的长度可以不用给出 会自动根据第二维的长度 分配第一维的长度。
  6. int array2[][3] = {1, 2, 3, 4, 5, 6};