1.4 一维数组在内存中的存储
接下来我们探讨数组在内存中的存储。
看代码:
#include <stdio.h> int main () { int arr [ 10 ] = { 0 }; int i = 0 ; int sz = sizeof ( arr ) / sizeof ( arr [ 0 ]); for ( i = 0 ; i < sz ; ++ i ) { printf ( "&arr[%d] = %p\n" , i , & arr [ i ]); } return 0 ; }
仔细观察输出的结果,我们知道,随着数组下标的增长,元素的地址,也在有规律的递增。
由此可以得出结论: 数组在内存中是连续存放的。
补充:
再补充一点:这里我们是整型(int)指针,加1跳过4个字节,但是当不是整型指针时,如char型时
也是p+1指向后一个地址,只不过是跳过一个字节,当然后期再讲指针时会细讲哈。
2. 二维数组的创建和初始化
2.1 二维数组的创建
// 数组创建
int arr [ 3 ][ 4 ];
char arr [ 3 ][ 5 ];
double arr [ 2 ][ 4 ];
2.2 二维数组的初始化
// 数组初始化
int arr [ 3 ][ 4 ] = { 1 , 2 , 3 , 4 };
int arr [ 3 ][ 4 ] = {{ 1 , 2 },{ 4 , 5 }};
int arr [][ 4 ] = {{ 2 , 3 },{ 4 , 5 }}; // 二维数组如果有初始化,行可以省略,列不能省略
2.3 二维数组的使用
二维数组的使用也是通过下标的方式。










