若以下定义,则对a数组元素地址的正确引用是(D)。为什么是D?
展开全部
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]得到第一个元素,再取地址,是这个数组的正确地址
B:*a先计算,得到a里第一个元素的值,再加1,当然不是地址了,而是地址的值了
C:a本身是一个数组,数组再用&取地址就会得到数组的地址,数组的地址虽然和数组元素的首地址相同,但是长度却不一样,p加1的长度是sizeof(int),&a加1的长度却是sizeof(int)*5【即数组的长度】,所以&a+1也超出了数组的范围
D:先计算a[0]得到第一个元素,再取地址,是这个数组的正确地址
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询