免費開始練習
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),我們可以使用以下公式:

▼ 還有更多解析內容

🏷️ 相關主題

資料結構:陣列、鏈結串列、樹與圖
查看更多「[資訊] 計算機原理、網路概論」的主題分類考古題