亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

int *p=&a[5]該怎么去理解?

int *p=&a[5]該怎么去理解?

C
荒小北158 2017-01-06 10:17:27
今天看到這樣的題目?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,顯然就是原始數組最后一個元素。
查看完整回答
反對 回復 2017-01-07
?
小輝輝學編程

TA貢獻2條經驗 獲得超3個贊

老師的答案有問題吧,我認為p[2]的值應該是72啊,p是一個指針指向a[5]那個地址,所以*p就是a[5]的值,p[2]應該是a[7]的值,應該是72吧。

查看完整回答
3 反對 回復 2017-01-06
?
眼前的黑不是黑zz

TA貢獻57條經驗 獲得超42個贊

對,理解沒錯啊。對p解引用。*p 的值就是2.

查看完整回答
1 反對 回復 2017-01-06
  • 荒小北158
    荒小北158
    上機驗證了一下 老師的答案給錯了 我還以為我理解錯了
  • 眼前的黑不是黑zz
    眼前的黑不是黑zz
    行,那ok了,答案錯了很正常,所以別盲信答案,要去思考答案是否正確。
?
DOUBLE_l

TA貢獻45條經驗 獲得超12個贊

p[2]等于72,*p等于2
查看完整回答
1 反對 回復 2017-01-06
  • 荒小北158
    荒小北158
    答案是54啊 按照你的答案 int *p=&a[5] 就是 p[0]==a[5] 了?
?
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


查看完整回答
反對 回復 2019-05-02
?
tangxiao

TA貢獻1條經驗 獲得超0個贊

你這題目寫錯了吧!是P[-2]吧

查看完整回答
反對 回復 2018-01-25
?
DOUBLE_l

TA貢獻45條經驗 獲得超12個贊

多上機驗證,多實驗。
查看完整回答
反對 回復 2017-01-06
  • 5 回答
  • 0 關注
  • 7615 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號