数组元素地址

若0<=i<10,对于
int a[]={1,2,3,4,5,6,7,8,9,10},*p,i;
p=a;
则下面( )不是对数组元素地址的正确表示?
A &(a+1) B.a++ C. &p D.&p[i]
求详解,求对每个答案的解释,谢谢。

答案是B。
A、a+1本身就表示数组元素的地址,加上这个&符号就变成了数组元素地址。
B、因为a是数组元素的首地址且是常量,不可改变的,所以不能用这个自增符号。

C、p是指针表示数组元素的第一个元素的地址,加上这个&符号就变成了第一个元素的地址的地址。
D、p[i]表示第i个元素的值,&p[i]则表示第i个元素的地址。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-12-23
a首先是指针
A 是指针移动一位再取地址,变成指针的地址,不对。
B a常量,不可以操作内存,错误
C p是指针类型的变量,和A一样
D 是对的,是元素地址
所以选ABC
相似回答