c语言指针问题。 若有int a[]={0,1,2,3,4,5,6,7,8,9,0},*p=a,i

c语言指针问题。若有inta[]={0,1,2,3,4,5,6,7,8,9,0},*p=a,i;则引用错误的是A.A[p-a]B.*(&a[i])C.p[i]D.*(*(... c语言指针问题。
若有int a[]={0,1,2,3,4,5,6,7,8,9,0},*p=a,i;
则引用错误的是
A. A[p-a]
B. *(&a[i])
C. p[i]
D. *(*(a+i))
能不能分别解释一下4个选项?(A选项的方括号前是大写的A)
展开
 我来答
kaixingui2012
推荐于2017-10-06 · TA获得超过4.2万个赞
知道大有可为答主
回答量:1.4万
采纳率:81%
帮助的人:6464万
展开全部
  • A. a[p-a]     p=a,p-a=0,这里就是引用 a[0]
    B. *(&a[i])   &a[i]表示取第i+1个元素的地址, *地址,表示引用地址中的数据,这里就是引用a[i]
    C. p[i]         p是指针,地址,可以用数组元素引用方式来引用数组元素。p[i]就是a[i]
    D. *(*(a+i))  a+i是第i+1个元素的地址,*(a+i)是引用地址中的数据,是个整数,*整数,是错误的引用方式,会引起程序异常。

显卡色彩校正器
2015-11-19 · TA获得超过2022个赞
知道小有建树答主
回答量:959
采纳率:25%
帮助的人:323万
展开全部
首先说,i是初始化了的。
p的地址就是a的地址,p-a=0,没问题
&a[i]代表&a[i]的地址,加上*代表存放的数,也就是a[i],没问题
p[i]意思就是a[i],没问题
a是a[0]的地址,*(a+i)指向a[i],再加*就不知道指到哪里去了,因为a[i]不是地址
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式