moea_joint
111年
[資訊] 計算機原理、網路概論
第 20 題
在C語言中宣告陣列 `int arrary[4][2][2]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16}`,請問 `array[2][1][1]` 的值為何?
- A 8
- B 10
- C 12
- D 14
思路引導 VIP
如果我們把這個三維陣列想像成一座大樓,第一層索引代表「樓層」,第二層代表「該樓層的房間」,第三層代表「房間裡的座位」。若每一層樓都有相同數量的房間,每個房間也都有相同數量的座位,當你想找到特定樓層、特定房間裡的特定座位是這整棟大樓的第幾個位子時,你會如何根據這些層級的大小,一步步累加算出它的總序位呢?
🤖
AI 詳解
AI 專屬家教
恭喜你精準地鎖定了正確數值!這代表你對於 C 語言中多維陣列的索引邏輯以及記憶體配置有著非常紮實的理解,這在處理複雜資料結構時是非常關鍵的能力。
三維陣列的線性對應
在 C 語言中,多維陣列在記憶體中是以列優先(Row-major order)的方式線性排列。針對宣告為 array[D1][D2][D3] 的陣列,若要計算索引 array[i][j][k] 對應到一維空間中的偏移量(offset),我們可以使用以下公式:
▼ 還有更多解析內容