若以下定义,则对a数组元素地址的正确引用是(D)。为什么是D?

 我来答
程迎丝化绍
撸铁爱好者

2019-03-29 · 管理身体,健康生活
知道小有建树答主
回答量:1.1万
采纳率:30%
帮助的人:647万
展开全部
答案是
d。
a项,由于
a[5]
已经超出数组外了,所以
*&a[5]
不是
数组元素。
b项,a+2
是a[2]的地址,不是数组元素。
c项,*(p+5)相当于a[5],已经超出数组范围,不是数组元素。
d项,正确,*(a+2)相当于
a[2]。
忻梦秋繁仕
2019-05-13 · TA获得超过3万个赞
知道大有可为答主
回答量:1.1万
采纳率:33%
帮助的人:744万
展开全部
A:因为a的长度是5,p指向a,p+5已经超出了a的最后一个元素,所以不对,如果是01234其中一个那么是对的。
B:*a先计算,得到a里第一个元素的值,再加1,当然不是地址了,而是地址的值了
C:a本身是一个数组,数组再用&取地址就会得到数组的地址,数组的地址虽然和数组元素的首地址相同,但是长度却不一样,p加1的长度是sizeof(int),&a加1的长度却是sizeof(int)*5【即数组的长度】,所以&a+1也超出了数组的范围
D:先计算a[0]得到第一个元素,再取地址,是这个数组的正确地址
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式