1、二维数组:
二维数组 : 一维数组的每一个元素又是一个一维数组
2、定义和初始化
1)定义的时候初始化
二维数组 :数据类型 数组名[常量表达式1][常量表达式2]
int a1[3][2]={1,2,3,4,5,6};
int a2[3][2]={{1,2},{3,4},{5,6}};
int a5[3][3]={{1},{2},{3}};
int a7[3][3]={{[1]=34},{[0]=10},{[2]=29}};
int a8[3][3]={[2][2]=12};
2)先定义后初始化
二维数组
int a10[2][2];
a10[0][0]= 133;
a10[1][0]= 12;
3、数组的访问越界的问题
访问了不能访问的元素
对于二维数组来说:如果二维数组int a[m][n],下标:a[0][0] ~ a[m-1][n-1]
除此之外,访问其他的元素都是越界
特别注意: 数组的越界在我们的C99编译器下,不报错,也能执行。只不过获取的数据不是我们想要的
4、数组的访问
二维数组 数组名[第一维下标][第二维下标]
5、数组的存储细节
在内存中存储都是连续的,逐行存储。
二维数组:
int a[2][2];
数组的首地值 = a = a[0] = &a[0][0]
二维数组的占用的总字节数:sizeof(a) = 16
二维数组行数:sizeof(a)/sizeof(a[0])
二维数组列数:sizeof(a[0])/sizeof(int)
6、数组的遍历
二维数组:
for(int i=0;i<rows;i++){
for(int j=0;j<cols;j++){
a[i][j] }
} |
|