已知int a[3][4];
则下列能表示a[1][2]
元素值的是?
- 在多维数组中,数组名是第一个数组的地址.
- 注意这里a不是第一个元素的地址,而是第一个维数组(即
a[0],a[0]是一个4元素的数组
)的地址,a[0][0]
才是表示的一维数组第一个元素的地址. - 数组名 + 1表示向下移一层.
本题中,
a
是一个三行四列的数组
*(a+1)表示第二行的首地址,和a[1]一样。
*(a+1)+2第二行第三个数字的地址
((a+1)+2)就是第二行第三个数字的值
其它答案:
a
是一个二级指针,不是一级指针,*(a+1)
表示的第二个数组的地址*(a+1+2)
等于*(a+3)
,是一个int *
, 表示的是 第4个数组a[3]
的地址,而**(a+3)
表示a[3][0]
的值,
*((int *)(a+3))
也可以表示a[3][0]
的值(&a[0]+1)
表示的是第2个数组a[1]
的地址,(&a[0]+1)[2]
其实是数组a[3]
的地址,改成((int *)(&a[0]+1))[2]
才是对的*(a[0]+1)
是a[0][1]
的值