作者:
musicJD (J.D.)
2014-10-20 09:40:28想請問一下
int a[3] = {1,2,3};
cout << a << endl;
cout << &a << endl;
為什麼印出來會是一樣的
照理說 a這個變數 有本身它自己所在的記憶體位置啊
我知道 "陣列不等於指標" 只是有時可以decay成指標
難道是因為這點
Compiler特別設計 自動把 &a 看成 &a[0]嗎?
作者:
CaptainH (Cannon)
2014-10-20 09:50:00&a和&a[0]的值相等 但意義不同也可以說是 用第一個元素的位址代表整個陣列的位址
作者:
purpose (秀才遇到肥宅兵)
2014-10-20 11:00:00因為你的照理說,a..自己所在的記憶體位置...是錯的
作者:
Feis (永遠睡不著 @@)
2014-10-20 12:16:00a 的值不是 a[0] 的位置. a 是代表整個陣列
作者:
uranusjr (â†é€™äººæ˜¯è¶…級笨蛋)
2014-10-20 12:42:00C 的陣列就是一塊連續的記憶體, 所以 a 的位置就是這塊連續記憶體的開頭, 所以就等於 a[0] 的位置
作者:
carylorrk (carylorrk)
2014-10-20 16:30:00為什麼你用 struct 時沒有同樣的困擾呢?
這是規定的 才不會有誰幫理髮師刮鬍子的問題(BULLSHIT)
作者: peoplewc (dong') 2014-10-25 01:36:00
深入淺出c