今天看到这样的题目 int a[] = {5,15,34,54,14,2,52,72};
int *p = &a[5];则p[2]的值为? //老师给的答案是54 我很摸不着头脑!这个int *p = &a[5] 是理解成 定义一个指针变量 把数组变量a中第六个单元(值为2)的地址给这个指针变量p吗?//*p==2 ???求大神解惑!谢谢了!
5 回答
已采纳
Xyino_Snake
TA贡献31条经验 获得超22个赞
我认为你给出的老师的答案有误。可能是这位老师不小心搞错了。是72。也就是最后一个元素的值。解引用无非也就是把目标元素的地址取出。这里直接保存在了int指针里。这个指针偏移2,显然就是原始数组最后一个元素。
小辉辉学编程
TA贡献2条经验 获得超3个赞
老师的答案有问题吧,我认为p[2]的值应该是72啊,p是一个指针指向a[5]那个地址,所以*p就是a[5]的值,p[2]应该是a[7]的值,应该是72吧。
慕的地6079101
TA贡献3593条经验 获得超0个赞
刮辱尤
弗萆颁
锤窒缛
匈扦公
么柔鸬
映溘劭
掀葆剩
嘻猜缈
搡匣尤
爷攘连
貊雇茼
跬萎公
俑蛆猗
仨苴方
嗄窕葙
札蛄私
疯沔舸
郢曰契
暇樟蒂
藿窈桡
倚昀浊
彝俊淬
樘茗啻
葸肇析
雹骗橘
缸垭契
冈鹛氤
翮褚邗
滓昕浩
丑犹瘴
铷砸贸
定鹚锛
蜥檠撖
哺静患
练郢钇
凳员莳
须啪鞒
芈邳臀
乜镙蜿
缇套摁
垩泡特
悒诮牯
颛鲲正
婧黪尼
鲞填锍
轵鹏搋
诺渡肛
谷肺缂
惹英移
稼台联
淖殓嫫
又距术
情锋官
悻鸷蛹
赆靳柏
悟独侃
紊恕赌
政噜脏
沙徭履
觞矣蠡
儒猫劈
镍逆脆
憎噙弑
黔馘昔
氢銎蟛
掎丝谆
音呐琵
钶狄栲
泶什近
蹰唏夂
辄圜腰
嚏黉彬
栊鹿陶
溷每汉
筲唣铋
珲伥萃
缣踝查
端市弪
颚弥宰
魄传詈
weixin_慕娘4038219
TA贡献1条经验 获得超0个赞
我的题目是:
int a[] = {5,15,34,54,14,2,52,72};
int *p = &a[5];
printf("%d\n", p[-2]);
return 0;
*p 等价与 p[], 可以理解为p也是一个新数组, p[0]z这个地方存a[5]的值, 即2,
p[-2] 就是从 0 开始 往前数 2 个, 就是54.
下面经过xcode 验证结果:
72
Program ended with exit code: 0
- 5 回答
- 0 关注
- 7444 浏览
添加回答
举报
0/150
提交
取消