指针问题 若有定义:int w[3][5];,则以下不能正确表示该数组元素的表达式是________。

请解释下错误选项错误的原因
选项 A)*(*w+3) B)*(w+1)[4] C)*(*(w+1)) D)*(&w[0][0]+1)

B
因为在B中的*(w+1)返回的是一个指针地址,当指针地址再做数组运算的时候就出错了!
温馨提示:答案为网友推荐,仅供参考
第1个回答  2009-03-25
A和C;*W表示W数组的第一个元素
第2个回答  2009-03-25
D)*(&w[0][0]+1)
int 型存储整数的位数依机器的不同而异
&w[0][0]+1 只是指针指向下一个单元,INT如果占用两个存储单元的话,则取值肯定不正确。如果是定义一个INT型的指针的话*P+1应该是正确的本回答被网友采纳
第3个回答  2009-03-26
B
完全是迷惑人的 (*(w+1))[4] 优先级问题
A *(*w+3) = w[0][3], *w == &w[0]
C *(*(w+1)) = w[1][0]
D *(&w[0][0]+1) = w[0][1]
第4个回答  2009-03-25
D)*(&w[0][0]+1)
& 是不可以的