免費開始練習
高考申論題 114年 [資訊處理] 資料結構

第 二 題

二、有一個三維整數陣列 A[3][6][8],每個元素占用 4 個記憶體空間,每個記憶體空間均有位址。該陣列在儲存至記憶體時,會先被轉換為一維陣列的形式儲存。下列位址皆為十進位,已知 A[0][1][2]的記憶體位址為 2040,A[1][4][5]的位址為 2340。請問陣列 A 在記憶體中的儲存方式為何?是以列為主(row-major)還是以行為主(column-major)?(10 分)請計算 A[1][5][3]在記憶體中的位址為何?(10 分)
📝 此題為申論題

思路引導 VIP

看到三維陣列位址計算題,應優先聯想「以列為主(Row-major)」與「以行為主(Column-major)」的位址偏移公式。利用題目給定的兩個已知元素位址計算其位址差,與兩種儲存方式的理論偏移量進行比對,藉此驗證儲存方式,接著再代入公式求出目標元素的位址。

🤖
AI 詳解 AI 專屬家教

【解題關鍵】利用多維陣列的位址計算公式(以列為主或以行為主),計算兩個已知座標的位址差,驗證陣列儲存方式後,再代入公式求出未知元素的位址。 【解答】 已知條件整理:

▼ 還有更多解析內容
📝 三維陣列位址計算
💡 掌握多維陣列線性化儲存之公式與維度順序判定。
比較維度 列為主 (Row-major) VS 行為主 (Column-major)
索引變動優先順序 先變動最右側索引 (k) 先變動最左側索引 (i)
計算邏輯 由左向右累乘維度大小 由右向左累乘維度大小
常用程式語言 C, C++, Java Fortran, MATLAB
💬兩者核心差異在於多維索引映射至一維記憶體時的掃描方向。
🧠 記憶技巧:列為主(C/C++)由右向左縮減;行為主(Fortran)由左向右縮減。大跨度先乘,小偏移後加。
⚠️ 常見陷阱:最常忘記乘上元素大小(S);或是計算維度乘積時將 D1, D2, D3 的順序搞混。
二維陣列映射 稀疏矩陣(Sparse Matrix)儲存 基底位址與索引偏移

🏷️ AI 記憶小卡 VIP

AI 記憶小卡

升級 VIP 解鎖記憶小卡

考前複習神器,一眼掌握重點

📝 同份考卷的其他題目

查看 114年[資訊處理] 資料結構 全題