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

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

第三行下標不是已經超過范圍了嗎,為什么會這樣?

第三行下標不是已經超過范圍了嗎,為什么會這樣?

C
Single丶love 2016-08-15 16:49:05
第三行下標不是已經超過范圍了嗎?那個內存空間不是沒有定義的嗎?為什么會這樣?
查看完整描述

2 回答

?
凌小天3635910

TA貢獻17條經驗 獲得超13個贊

int?a[]={1,2,3,4,5};????//定義一個整形數組大小為5int
int?*p=a;???????????????//定義一個指針變量p,將數組a首地址賦值給p。
int?*p=&a[5];???????????//定義一個指針變量q,將數組首地址后5個int位的地址賦值給p
????????????????????????//&a[5]等價于(a+5).既a地址后5int位。
printf("%d",q-p);???????//輸出q地址減去p地址的大小。


查看完整回答
1 反對 回復 2016-08-15
  • Single丶love
    Single丶love
    但是數組只有5個int大小啊,a[5]不就是數到地6個么?那里不是沒有定義的嗎?
  • 凌小天3635910
    凌小天3635910
    有沒有定義不重要 。因為這里運算的不是數據。而是地址。地址是內存的一段段空間。是實實在在存在的。
?
委屈的寶寶

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

的確沒有定義,但是&a[5]只是取個地址,就是一次加法運算,也就是地址偏移。

查看完整回答
反對 回復 2016-08-15
  • 2 回答
  • 0 關注
  • 1633 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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