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

inta[5],*p=a;A.p+5B.*a+1C.&a+1D.&a[0]... int a[5],*p=a;
A.p+5 B.*a+1 C.&a+1 D.&a[0]
展开
 我来答
jackwind1987
2013-03-06 · TA获得超过2738个赞
知道大有可为答主
回答量:1268
采纳率:50%
帮助的人:477万
展开全部
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

提交
取消

辅 助

模 式