首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

資料結構:二維陣列行優先儲存地址計算範例解析

     編輯:程式設計綜合問答

題目重述

二維陣列 A[1..8][1..10],每元素 3 位元組,行優先連續儲存,首地址 SA。求 A[8][5] 起始地址。

計算公式

行優先:Offset = ((row - 1) * COLS + (col - 1)) * ELEMENT_SIZE

代入數值

  • row = 8, col = 5
  • COLS = 10(列數)
  • ELEMENT_SIZE = 3 bytes

Offset = ((8-1)*10 + (5-1)) * 3 = (70 + 4) * 3 = 74 * 3 = 222 bytes

結果

A[8][5] 起始地址 = SA + 222,對應選項 C. SA+222。

驗證邏輯

  1. A[8][5] 之前完整行數:7 行(第 1~7 行),每行 10 元素 → 70 元素。
  2. 第 8 行之前元素:第 1~4 欄 → 4 元素。
  3. 共 74 個元素,每元素 3 bytes → 222 bytes 偏移。

延伸:列優先公式

若改為列優先:Offset = ((col-1)*ROWS + (row-1)) * SIZE。面試常考雙版本,需靈活切換。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved