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

admin2009-02-15  29

问题 对于二维数组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。
转载请注明原文地址:https://kaotiyun.com/show/bUjZ777K
0

最新回复(0)