二维数组与指针的一些问题
二维数组与指针的一些问题
1 |
|
结果:
1 | ========================= |
分析:
A[0][1]
:常规的二维数组索引*(*(A+0)+1))
:利用双重指针来对二维数组进行索引,这里的A应该是一个**int (*)[3]数组指针类型的变量,*(A+0)就是一个int ***类型的变量,所以这里和A[0][1]的结果是一样的。&A[1][0]
:第二行第一列数据的地址*(A+1)
:同第二点,这里A是一个int (*)[3]数组指针类型的变量,故A+1指向第二行,且A+1仍是一个**int (*)[3]**数组指针类型的变量,取地址后就是第二行行首的地址**(A+1)
:同理,A是一个int (*)[3]数组指针类型的变量,A+1指向第二行,两次取地址后就是元素A[1][0]**((int (*)[1])A+1))
:这里利用强制类型转化将A的类型由int ()[3]数组指针类型转化为int ()[1],故A+1指向第二列,且A+1仍是一个**int (*)[1]**数组指针类型的变量,两次取地址后就是元素A[0][1]
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 spaceman!