※ 引述《lalaboom (lalaboom)》之銘言:
: 之前我的認知陣列名稱是一個常數指標,非指標常數喔,
: 1. 請問這個敘述對嗎?
: 現在有陣列 int b[2];
: int a[2][3];
: 2. 請問為什麼 b 跟 &b 兩個address會一樣呢?
: 我可以理解 a, a[0], &a[0][0] 這3個一樣,
: 但是type不同,還是說這個認知也是錯的XD
: 3. 陣列在記憶體裏面除了宣告出來的連續空間,
: 陣列名稱是否會有另外像宣告指標一樣有一個變數空間嗎?
: 關於2之前好像有看到說&b = b 是定義好的 (compiler ? )
: 關於以上問題可能敘述的不是很好,
: 有需要我再補充,
: 懇請各位解惑 ~ 3Q
先不要管 l-value 跟 r-value 的問題,
這些真的都不重要,重要的是生成後的機械碼。
不過本人從來沒去認真想過 &b 真正存在的價值,
是為了使程式更加安全嗎?像是:
宣告:char b[16];
void func(char (*arr)[16]);
呼叫:func(&b);
強制指定輸入的陣列長度?
不然到底什麼時候會用到啦~?╮( ̄▽ ̄")╭