选择题

若有定义: 
int w[3][5];
则以下不能正确表示该数组元素的表达式是(     )。

【正确答案】 A
【答案解析】

本题考査的是通过指针引用二维数组元素。通过一维数组名或指向一维数 组元素的指针来引用数组元素有两种写法:a[i]和*(a+i),它们是等价的。这是一种运算符之间的等价转换, 就好像a-(b-c)等价于a-b+c—样。知道了这种转换,我们可以将其扩展到二维数组甚至任意维数组上来。因 为[]运算符的结合性是从左至右的,所以w[i][j]等价于(w[i])[j],此时可以先将任意一个[]运算符转换为指针形式 为(*(w+i))[j]或*(w[i]+j),或者同时转换为*(*(w+i)+j)。上述几种形式都完全等价于w[i][j]。