二维数组首元素a、a[0]、a[0][0]
定义了一个二维数组a[m][n],a[0]和a都是数组首元素,但二者指向的对象不同,a[0]是一维数组名,代表a[0]数组首元素地址,可以将a[0]看成一个整体,一个数组名,类似数组array[m]的数组名为array,对其进行"*"运算,得到a[0]数组首元素的值,即*a[0]和a[0][0]是相等的;而a代表首个行数组元素的地址,它的指针移动单位是行,所以a+i指向行数组a[i]。对a进行"*"运算,得到的是a[0],而a[0]是a[0][0]的地址,即*a==a[0],a[0]==&a[0][0]
将二维数组图解如下:
可以这么简单的理解,例如:arr[m]去掉一个"[]"就是数组首元素的地址。同理,barr[m][n]去掉一个"[]"后,barr[i][0]的地址,即第i+1行数组的首地址。
网友评论