数组a[3][4],哪个不能表示a[1][1]?
(1)*(a[1] + 1)
(2)*(&a[1][1])
(3)(*(a + 1))[1]
(4)*(a + 5)
这是一道考察二维数组的经典题。
a | 首行地址 | a+1 | 加一行元素长度后的地址 |
&a | 整个元素的首地址 | &a + 1 | 加一个数组长度后的地址 |
a[0] | 首行首元素地址 | a[0] + 1 | 加一个元素长度后的地址 |
*a | 首行首元素地址 | *a + 1 | 加一个元素长度后的地址 |
运行结果如下:
由此可见,(4)不能表示a[1][1]。
a表示首行地址,(a+5)已经超出数组空间。