设数组a[1..n,1..m] (n>1,m>1)中元素以列为主序存放,每个元素占用1个存储单元,数组空间首地址为2020,则数组元素a[i,j](1≤i≤n,i≤j≤m)地址为( )。
- A.2020+(i-1)*m+j-1
- B.2020+(i-1)*n+j-1
- C.2020+(j-1)*m+i-1
- D.2020+(j-1)*n+i-1
正确答案及解析
正确答案
D
解析
数组 a[1..n,1..m] (n>1, m>1)如图所示:数组元素存储地址=数组空间首地址+偏移量。其中偏移量计算方式为排列在所访问元素之前元素个数乘以每个元素占用存储单元数。

对于元素a[i,j],在按列存储(以列为主序存放)方式下,该元素之前元素个数为(j-1)*n+i-1,每个元素占用1个存储单元,首地址为2020。





