二 *(a+1)多维数组

一维数组a[2]={1,2}:
有2行,每行1个元素。
二维数组a[2][3]={0,1,2,3,4,5}:
有2行,每行3个元素。

a+1其实是以“行”为跳变单位的,所以

对于a[2],a+1就是“数组基址+sizeof(int)”,
1 2 未知
a,&a[0] a+1,&a[0]+1 &a+1

对于a[2][3],a+1就是“数组基址+3×sizeof(int)”,
0 1 2 3 4 5 未知
a a[0]+1 a+1 &a+1
a[0]
a[0][0]

a+1 在首地址基础上加多少sizeof,与a是几维数组有关。
&a+1 不论几维数组,都是“首地址+sizeof(数组)”。

posted @ 2020-02-04 11:17  wuqi1003  阅读(320)  评论(0编辑  收藏  举报