二维数组的数据类型
首先来对一维数组的数据类型进行总结,如图所示:
定义一个整型一维数组:int arr[4];那么
arr:数据类型为整型指针(int *p),在图中即黑色箭头,代表整型指针;
arr+1:数据类型为整型指针(int *p),在图中即橘色箭头,它代表在原单元格地址的基础上加1,那么就是从第一个单元格指向第二个单元格;依然代表整型指针;
arr[0]:数据类型为整型(int),其含义为单元格内所存贮的内容,即图中红色格子所代表的内容;
arr[0]+1:数据类型为整型(int),其含义为下一个单元格所存贮的内容,即图中红色格子后的一个格子所代表的内容。
那么通过一维数组我们可知二维数组的数据类型,如图所示:
定义一个三行四列的整型二维数组:int [3][4];那么:
brr:数据类型为整型数组指针(int (*p)[4]),它代表一个指向数组的指针,即图中左侧黑色箭头,它指向第一行,即指向红色框数组;
brr+1:数据类型为整型数组指针(int (*p)[4]),它依然代表一个指向数组的指针,只是在原先指针的基础上指向下一个数组,即指向图中蓝色框数组;
brr[0]:数据类型为整型指针(int *p),它代表指向一个单元格的指针,即图中第一行指向第一个单元格的指针;
brr[0]+1:数据类型为整型指针(int *p),它代表跳往下一个单元格的指针,即图中第一行指向第二个单元格的红色箭头,它是由brr[0]指针加1所产生的;
brr[0][0]:数据类型为整型(int),它代表一个单元格内所存贮的内容,即图中一个小方块内的内容。
由此也可看出:brr[0]==arr;