注册 登录
编程论坛 C语言论坛

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

Gloria_zhang 发布于 2020-12-07 17:33, 1578 次点击
若有定义:int w[3][5];这一下不能正确表示该数组元素的表达式是()
A *(*w+3)      B  *(w+1)[4]  C *(*w+1)  D *(&w[0][0]+1)
为什么选b?
4 回复
#2
rjsp2020-12-07 19:37
因为 *(w+1)[4] 等同于 *((w+1)[4]) 而非 (*(w+1))[4]
#3
Gloria_zhang2020-12-07 21:11
回复 2楼 rjsp
那这个 *((w+1)[4]) 得w[5][0]吗?
#4
rjsp2020-12-08 08:27
回复 3楼 Gloria_zhang


A选项 *(*w+3) 等同于 w[0][3]
C选项 *(*w+1) 等同于 w[0][1]
D选项 *(&w[0][0]+1) 等同于 w[0][1]

*(w+1)[4] 等同于 *((w+1)[4]) 而非 (*(w+1))[4]。
*((w+1)[4]) 等同于 w[5][0]
(*(w+1))[4] 等同于 w[1][4]
#5
Gloria_zhang2020-12-08 13:22
回复 4楼 rjsp
谢谢
1