二维数组
1.首先我们定义一个二维数组
int arr[3] [4];//这表示定义了一个3行4列的二维数组,并且行优先
有以下几种表示二维数组元素的方法:
int brr [3] [4] ={{1,2,3,4},{5,6,7,8},{9,10,11,12}};
int crr [3] [4] = {1,2,3,4,5,6,7,8,9,10,11,12};
Int err [3] [4] = {1,2,3,4,5};
当表示某一特定元素时,例如2行1列的元素1时,可用以下两种方式来表示
frr [2] [1]=1;
int hrr[3] [4]={0,0,0,0,0,0,0,0,0,1};
int grr[ ] [4]={1,2,3,4,5,6,7,8,9,10};//二维数组中行可以省略,至少写出列,编译器可以推断出来行
//输出crr的内容
for(int i=0;i<3;i++)//遍历行
{
for(int j=0;j<4;j++)//遍历列
{
printf(“%-3d”,crr[i] [j]);//-3表示左对齐
}
printf(“\n”);
}
一维数组数组名表示数组首元素
int arr[5];
arr:int*
arr+1: int*
arr[0]: 红色格子
二维数组,如下图:
int brr[3] [4]
数据类型
1.brr: int(*p)[4] //首行的地址
2.brr+1: int(*p)[4]//下一行的地址
3.brr[0]: int* //brr中第0列元素的地址,(brr[0]==arr)
4.brr[0]+1: int*//brr[0] [1]
5.brr[0] [0]: int
一维数组数组名表示数组首元素,这句话只适用于一维数组,因此我们可以将二维数组看成特殊的一维数组