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

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

陣列地址。

陣列地址。

瀟瀟雨雨 2019-09-26 10:13:42
int t[10];int * u = t;cout << t << " " << &t << endl;cout << u << " " << &u << endl;輸出:0045FB88 0045FB880045FB88 0045FB7C輸出對于u是有意義的。我理解t并且&t[0]應該具有相同的值,但是為什么&t也相同?&t實際上是什么意思?
查看完整描述

3 回答

?
眼眸繁星

TA貢獻1873條經驗 獲得超9個贊

t在表達式中單獨使用它時,將進行數組到指針的轉換,這將產生一個指向數組第一個元素的指針。

t用作&運算符的參數時,不會進行這種轉換。所述&然后明確地需要的地址t(陣列)。&t是指向整個數組的指針。

數組的第一個元素在內存中的位置與整個數組的開頭相同,因此這兩個指針具有相同的值。


查看完整回答
反對 回復 2019-09-26
?
小唯快跑啊

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

t由于您無法更改,因此沒有名為的變量。該名稱t僅指第一個元素的地址(并且還具有與之關聯的大?。?。因此,采用該地址的地址實際上是沒有意義的,并且C將其“折疊”為僅僅是地址。

對于函數情況,也會發生同樣的事情:

int foo(void){
  return 12;}printf("%p and %p\n", (void *) foo, (void *) &foo);

這應該打印出相同的內容,因為沒有保存地址的變量foo,而該地址又可以采用。


查看完整回答
反對 回復 2019-09-26
?
holdtom

TA貢獻1805條經驗 獲得超10個贊

的實際類型tint[10],&t數組的地址也是如此。

同樣,int[]隱式轉換為int*,因此t 轉換為數組第一個元素的地址。


查看完整回答
反對 回復 2019-09-26
  • 3 回答
  • 0 關注
  • 648 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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