討論串[問題] 二維陣列的陣列名稱
共 7 篇文章
首頁
上一頁
1
2
下一頁
尾頁

推噓0(0推 0噓 0→)留言0則,0人參與, 最新作者Nairoda (new)時間13年前 (2011/07/24 10:20), 編輯資訊
1
0
0
內容預覽:
我看書上說. 如果設 int a[2][3] = {1,2,3,4,5,6}. 二維陣列名稱 a 被定義為此陣列的起始記憶體位址。我的解讀是:. 這二維陣列的數值在記憶體上被一個連續的記憶體區塊儲存著, 其中第一個位元組的記憶體序號就是 a, 也就是 a = &a[0][0]。. 書上說, a[0]
(還有664個字)

推噓1(1推 0噓 2→)留言3則,0人參與, 最新作者LPH66 (-858993460)時間13年前 (2011/07/24 11:24), 編輯資訊
1
0
0
內容預覽:
像 a 這個名字除了它的位置(你講的"值")以外 它的型態也很重要. a 它是個"在 0x22cd0c 的 int[2][3]". a[0] 它是個"在 0x22cd0c 的 int[3]". a[0][0] 它是個"在 0x22cd0c 的 int". 這種型態的差別決定了 *a 和 *(a[0]
(還有670個字)

推噓0(0推 0噓 2→)留言2則,0人參與, 最新作者Nairoda (new)時間13年前 (2011/07/24 13:18), 編輯資訊
1
0
0
內容預覽:
多謝 L 大的回答,. 我能瞭解. a 它是個"在 0x22cd0c 的 int[2][3]". a[0] 它是個"在 0x22cd0c 的 int[3]". a[0][0] 它是個"在 0x22cd0c 的 int". 而. 請問上一句的 "在某處" 感覺上是個變數 (因為 L 大下一段回覆 b
(還有293個字)

推噓2(2推 0噓 0→)留言2則,0人參與, 最新作者LPH66 (-858993460)時間13年前 (2011/07/24 18:18), 編輯資訊
1
0
2
內容預覽:
是的 這個某處並不是紀錄在某個變數裡. 以我以前回過的一篇文的講法就是「它是綁在 a 這個符號上」. 因此當有和它相關的位移運算時它就會把這個某處給代進去去運算. 因此最後編譯出來的程式中 這個值將會直接出現在指令上而不是存在某個變數裡. 你只能說 a 和 *a 所在的位址相同. (我相信你所謂"相
(還有1241個字)

推噓4(4推 0噓 15→)留言19則,0人參與, 最新作者Favonia (小西風最乖了*^^*)時間13年前 (2011/07/24 20:34), 編輯資訊
2
0
0
內容預覽:
想要補充三點 LPH66 大沒有提到的東西(但我寫的可能不適合初學者讀 orz). 第一個,printf 的 %p 只能用來印 void* 不能用來印其他種指標!(感覺可以. 寫一篇「如何印指標」到 FAQ 裡面了...)編譯器沒辦法幫你轉型成 void*.. 註:我覺得標準「希望」char* 也可
(還有3414個字)
首頁
上一頁
1
2
下一頁
尾頁