若定义int a[5],*p=a;则不能正确表示数组元素a[i]的是() A.*(a+i) B.*

若定义int a[5],*p=a;则不能正确表示数组元素a[i]的是()
A.*(a+i) B.*(p+i) C.p[i] D.*p[i]
求详细原因

D
p[i]已经取值,前面加个*则将该数值又当做地址进行取值,自然不正确。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-01-24
D追问

原因是什么啊,谢谢

追答

前2个没问题吧?*代表指针 p指向a的位置,所以无论a+i p+i都是指向a i的位置,而pi和ai的表示是一样的,而*pi只能指向指针数组而不是int数组

追问

thank you