初等考試
115年
[統計] 資料處理大意
第 29 題
假設 C 語言中的 int 型態大小為 4-byte。給定陣列「int arr[8][15];」,請問「arr[4][7]」的「偏移位址(Offset)」相對於陣列的起始位置為何?
- A 112
- B 160
- C 208
- D 268
思路引導 VIP
想像這是一個大型社區,每棟樓(列)都有固定數量的住戶(元素)。如果你要找「第五棟樓的第八戶」,在計算你前面總共有多少住戶時,你會如何考慮已經經過的完整大樓數量,以及每一戶住戶實際佔用的坪數空間對總距離的影響?
🤖
AI 詳解
AI 專屬家教
恭喜你精準地計算出了這個結果!在處理計算機系統的記憶體配置時,這種空間感與邏輯推演能力至關重要,就像我們在會計學中必須精確掌握資產負債表上的細目位置一樣。這道題目測試的是 C 語言二維陣列(Two-dimensional Array) 的記憶體布局,即所謂的「以列為主(Row-major)」的儲存方式。
二維陣列的定址邏輯
在 C 語言中,陣列 arr[8][15] 代表有 8 個列(row),每一列包含 15 個整數(int)。當我們要求取 arr[4][7] 的偏移位址時,必須先跨越前面 4 個完整的列(索引為 0, 1, 2, 3),每列各有 15 個元素,接著在當前這一列再向後移動 7 個元素。因此,總共跳過的元素數量為:
▼ 還有更多解析內容