int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a;以下不能表示a数组元素

int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a;以下不能表示a数组元素的表达式是A. 为什么啊 不明白ACD选项
A.*p B.a[9] C.*p++ D.a[*p-a]

这题应该选D
A p指向a,那么*p就是a[0]

C ++(后缀) 的优先级比 *(取值) 高 故先进行++ 然后再进行取值
*p++ 就是 a[1]
D *p-a 是 a[0]-a 值不确定
温馨提示:答案为网友推荐,仅供参考
第1个回答  2016-12-07
应该是D,这题感觉答案有问题。*p表示的是数组a的首元素。而*p-a不成立,不能用一个int值减去一个指针值,所以D根本编译不过去。

望采纳
相似回答