13 二維陣列的索引可以表示成列與行,現以列主序(Row-major)的方式將陣列 ABC[-5:10,3:8]排列在記憶體 中,且設定此陣列的初始記憶體位置為 1200。假設此陣列的每個元素皆需要 8 個位元組(Bytes)的儲存 空間。試算陣列元素 ABC[1, 4]的儲存,應始於那個記憶體位置?
(A) 1368
(B) 1376
(C) 1488
(D) 1496

答案:登入後查看
統計: A(43), B(111), C(96), D(121), E(0) #3275164

詳解 (共 2 筆)

#6170336
陣列的記憶體位置為連續編排,一個記憶體位...

(共 35 字,隱藏中)
前往觀看
16
0
#6232267

我們需要計算元素 ABC[1, 4] 的記憶體位置。首先,將索引轉換為相對於陣列的起始位置的偏移量:

  • 行索引 1 相對於起始行 -5 的偏移量是 1−(−5)=61(5)=6
  • 列索引 4 相對於起始列 3 的偏移量是 4−3=143=1

然後,根據列主序排列計算元素的位置:

  1. 每行有 6 個元素。
  2. 行索引為 6 的行之前有 6 行,即總共有 6×6=36 個元素。
  3. 加上行索引 6 中的偏移量 1,即第 6 行的第 2 個元素。

因此,元素 ABC[1, 4] 在記憶體中的位置是:

  • 起始位置 + 前面所有元素的數量乘以每個元素的大小
  • 1200+(36+1)×8=1200+37×8=1200+296=14961200+(36+1)×8=1200+37×8=1200+296=1496

因此,正確答案是:
(D) 1496

8
0

私人筆記 (共 1 筆)

私人筆記#7824618
未解鎖
答案:(D) 解析:列主序 (Row-...
(共 347 字,隱藏中)
前往觀看
1
0