C/C++中二维数组名称含义
1. 下面的定义方式 可读性高
int array[3][3] =
{
{1,2,3},
{4,5,6},
{7,8,9}
};
2. 二维数组名称 不是指针,是指向第一个一维数组的指针
int (*p)[3] = arr;
通过p访问数组中第5个元素5,i=1,j=1
printf("%d\n",p[i][j] ); //给人看的
printf("%d\n",*(*(p+i)+j) ); //给机器看的
3. 除下面两种情况外,二维数组名称都是指向第一个一维数组的指针
(1)对数组名进行sizeof运算,如sizeof(arr)取整个数组的长度4*9=36
printf("size of arr = %d\n",sizeof(arr) );
(2)对数组名取地址,是指向第二个二维数组的指针
int (*p)[3][3] = &arr;