. int a[]={1,2,3,4,5,6,7,8,9,10}, *p=a.i; 则下列能够正确表示数组元素地址的是( )

A、&(a+1) B、a++ C、&p D、&p[i]

答案是D

p[ i ]是数组a[ ]的第i+1个元素,&p[ i ] 即取数组a[ ] 的第i + 1个元素的地址,故&p[ i ]表示数组元素地址。

A 错,a+1本身就是数组第二个元素的地址,再取地址编译报错
B 错,a是数组名,存储在静态区,不能进行自增++运算,只有变量才可以++
C 错,p本身就是指向数组的首元素a[0],&p表示指针变量p的地址。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-06-27
a是数组元素的首地址是常量 所以对a 进行算术操作都是错的。
p是地址。。。所以D是正确的 C是对地址取地址
第2个回答  2013-06-27
答案为D.
A,意为对数组a中第二个元素地址的地址.
B,不能改变数组a的首地址.
C,意为对数组a中首元素地址的地址.
D,意为数组a中下标为i的地址.