二维数组含义
二维数组含义
区分以下含义:一维数组:
arr指的是一个指向第一个格子的指针,也就是第一个格子的地址,数据类型为整形地址变量;
arr+1则为将指针向后移动一个格子,+1相当于+4个字节,数据类型也为整形地址变量;
arr[0]表示第一个格子,也就是第一个格子中的内容,数据类型为整形变量;
arr[0]+1指的是第一个格子中的数据+1,数据类型也为整形变量;
二维数组:
将二维数组视为特殊的一维数组,以brr[3][4]为例,第一行为第一个元素(行优先),以此类推。
brr表示一个指针指向第一行,数据类型不容易看出,进行简单推导:
首先brr为指针指向第一行,则为(*p);
该指针指向的为brr[3][4]的第一行,一行有四个格子,所以为(p)[4]
brr的数据类型为数组指针,一级指针。
注:这里(-p)[4]为数组指针,而p[4]为指针数组,这里是指全为指针的数组
brr+1为指针向下移动一行,数据类型与brr*一样。
**brr[0]等同于arr,同样表示一行数组,数据类型为整形地址变量,指针指向第一行第一个格子。
brr[0]+1表示将brr[0]的指针向后移动一个格子。
最后brr[0][0]**则表示第一个格子,数据类型为int,整形。