1、二维数组:
可以看做是一个特殊的一维数组,这个一维数组的每个元素又是一个一维数组
二维数组的定义
数据类型 数组名[第一维的长度(行)][第二维的长度(列)];
int a[2][3];
理解方法:
1)这是一个特殊的一维数组,一维数组有两个元素a[0] a[1]
a[0] 它又存放了一个一维数组该数组长度为3
2) 定义了一个2行3列的一个矩阵
//注意事项
数组名不能跟变量名同名
数组的长度可以是常量表达式
2、二维数组的初始化
1)定义的同时初始化
1、完全初始化
int a[2][3]={{},{}}; //分段
int a[2][3]={1,2,3,4,5,6} //连续赋值
可以省略第一维
2、部分初始化
int a[2][3]={1}; 第一个元素为1 其他元素为0
2)先定义,后初始化
int a[2][3];
a[0][0]=1;
3、二维数组的遍历
定义一个数组 int a[2][3]={1,2,3,4,5,6};
for(int i=0;i<2,i++){
for(int j=0;j<3,j++){
printf("%d\t",a[i][j]);
}
printf("\n");
}
4、二维数组的存储细节
数组的首地址==数组名==&a[0]=&a[0][0]
通过数组名计算数组占用的总字节数
len=sizeof(数组名)
计算数组每一行占用的字节数
len=sizeof(a[1]);
每一行有多少列
列数=行的总字节数/ 每个元素占用的字节(数组类型)
sizeof(a[1])/sizeof(数组类型)
|