问题 单项选择题

对于二维数组A[0..5,1..8],设每个元素占1个存储单元,且以列为主序存储,则元素A[3,6]相对于数组空间起始地址的偏移量是 (40)

A.9
B.18
C.29
D.33

答案

参考答案:D

解析: 若二维数组A[L1..U1,L2..U2]以列为主序存储,每个元素占用d个存储单元,则元素A[i,j]的存储位置相对于数组空间首地址的偏移量为((J-L2)×(U1-LI+1)+I-L1)×d。
对于二维数组A[0..5,1..8],设每个元素占1个存储单元,即d=1,L1=O,U1=5,L2=1,U2=8。若以列为主序存储,则元素A[3,6]相对于数组空间起始地址的偏移量为((J-L2)×(U1-L1+1)+I-L1)×d= (6-1)×X(5-0+1)+3-0)×1=33。
另外,若二维数组A[L1..U1,L2..U2]以行为主序存储,每个元素占用d个存储单元,则元素A[i,j]的存储位置相对于数组空间首地址的偏移量为((1-L1)×(U2-L2+1)+J-L2)×d。
可见,若二维数组A[0..5,1..8]以行为主序存储,每个元素占1个存储单元,则元素A[3,6]相对于数组空间起始地址的偏移量是((3-0)×(8-1+1)+6-1)×1=29。

多项选择题
填空题