计算机二级C语言问题

这个题目,答案是B,我想问问这个*(w+1)[4]等价于*((w+1)[4])之后,又为什么等价于*(*((w+1)+4))呢???... 这个题目,答案是B,我想问问这个*(w+1)[4]等价于*((w+1)[4])之后,又为什么等价于*(*((w+1)+4))呢??? 展开
 我来答
White_MouseYBZ
2014-02-07 · TA获得超过4万个赞
知道大有可为答主
回答量:2.1万
采纳率:82%
帮助的人:6390万
展开全部
B是错误的,所以选择B为答案。*(w+1)[4],由于[]的优先级高于*,所以被解释为*((w+1)[4])。其中w+1指向第2行第1个元素位置,后面跟[4]的意思是向后再移动4行指向第6行的第1个元素,而声明的二数组w只有3行,所以(w+1)[4]指向数组w之外了,所以*(w+1)[4]取不到数组w的元素,所以是错误的……
穷图末录
2014-02-07 · TA获得超过457个赞
知道小有建树答主
回答量:337
采纳率:100%
帮助的人:151万
展开全部
*(w+1)[4]等价于*((w+1)[4])是因为[]的优先级高于*

然后等价于*(*((w+1)+4))是因为p[4]和p+4是一样的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
菜鸟浩克
2014-02-07
知道答主
回答量:16
采纳率:0%
帮助的人:11.6万
展开全部
这个问题纯粹就是数学公式:
记住:无论a是指针还是数组,a[i]都会被编译器解析为 *(a+i);

也就是说 a[i]与 *(a+i)的写法是完全等价的。因此 (w+1)[4]可以写为 *((w+1)+4).
因此,*((w+1)[4]) 等价于*(*((w+1)+4))
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
乱天雨
2014-02-07 · TA获得超过675个赞
知道小有建树答主
回答量:1146
采纳率:25%
帮助的人:495万
展开全部
w是地址,w+1是w【1】,这也是一个地址,前面的*取地址
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式