阿摩線上測驗 登入

申論題資訊

試卷:103年 - 103 關務特種考試_四等_資訊處理:程式語言概要#24839
科目:程式語言
年份:103年
排序:0

申論題內容

二、假設某語言是以行為主(Column Major),宣告浮點數陣列 A[9][10],設浮點數大小 為 4,若 A[0][0]在記憶體中的位址為 250,則元素 A[5][7]的位址為何?(10 分)

詳解 (共 2 筆)

詳解 提供者:hchungw
 

要計算列主序(Column Major)下的二維陣列元素地址,需要考慮以下幾點:

  1. **列主序(Column Major)**存儲方式意味著陣列是按列順序存儲的。對於一個二維陣列 A[i][j]A[i][j]A[i][j],其內存地址依賴於列號和行號。
  2. 假設每個浮點數的大小為 4 位元組。
  3. 陣列 A[9][10]A[9][10]A[9][10] 表示一個 9 行 10 列的陣列。

計算公式

在列主序存儲中,元素 A[i][j]A[i][j]A[i][j] 的地址計算公式如下:

地址=基址+(i+j×行數)×元素大小\text{地址} = \text{基址} + (i + j \times \text{行數}) \times \text{元素大小}地址=基址+(i+j×行數)×元素大小

其中:

  • 基址\text{基址}基址 是陣列第一個元素(即 A[0][0]A[0][0]A[0][0])的內存地址。
  • iii 是行號。
  • jjj 是列號。
  • 行數\text{行數}行數 是陣列的行數。
  • 元素大小\text{元素大小}元素大小 是每個陣列元素的大小(位元組數)。

已知條件

  • 陣列基址(A[0][0]A[0][0]A[0][0] 的地址) = 250
  • 浮點數大小 = 4 位元組
  • 陣列行數 = 9
  • 計算 A[5][7]A[5][7]A[5][7] 的地址

代入公式

代入公式進行計算:

地址=250+(5+7×9)×4\text{地址} = 250 + (5 + 7 \times 9) \times 4地址=250+(5+7×9)×4

先計算括號內的內容:

5+7×9=5+63=685 + 7 \times 9 = 5 + 63 = 685+7×9=5+63=68

然後計算總地址:

地址=250+68×4=250+272=522\text{地址} = 250 + 68 \times 4 = 250 + 272 = 522地址=250+68×4=250+272=522

因此,元素 A[5][7]A[5][7]A[5][7] 的內存地址為 522

詳細過程

  1. 找到列號 j=7j = 7j=7
  2. 計算列偏移量:7×9=637 \times 9 = 637×9=63
  3. 加上行號 i=5i = 5i=563+5=6863 + 5 = 6863+5=68
  4. 乘以每個元素的大小:68×4=27268 \times 4 = 27268×4=272
  5. 加上基址 250:250+272=522250 + 272 = 522250+272=522

結論

元素 A[5][7]A[5][7]A[5][7] 的內存地址為 522

詳解 提供者:莊亞琦
522