1.二维数组定义的一般形式是:
类型说明符 数组名[常量表达式1][常量表达式2]
常量表达式1表示:第一维下标的长度
常量表达式2表示:第二维下标的长度
int arr[3][4];
在C语言中,二维数组是按行排列的(即行优先)
即,先存放a[0]行,再存放a[1]行,最后存放a[2]行。每行中有四个元素也是依次存放。
2.二维数组的引用:
首先二维数组不能像一维数组一样,不可以用数组名传递数组元素的首地址
其次,分析一维数组与二维数组引用时,指针类型的不同
int arr[4] | int brr[3][4] | ||
变量名 | 变量类型 | 变量名 | 变量类型 |
arr | int * | brr | int (*p)[4] |
arr+1 | int * | brr+1 | int (*p)[4] |
arr[0] | int | brr[0] | int * |
brr[0]+1 | int * | ||
brr[0][0] | int |
需注意:brr可以看做三个长度为四的数组的数组,所以类型为int (*p)[4]
3.区分指针数组、数组指针
指针数组:即指向指针的数组
数组指针:即指向数组的指针