设数组a[0 ... n-1,0 ...m-1](n>1,m>1)中元素以行为主序存放,每个元素占用4个存储单元,则数组元素a[i,j](0小于等于i小于n,0小于等于j小于m)存储位置相对于数组空间首地址偏移量为()
- A.(j*m+i)*4
- B.(i*m+j)*4
- C.(j*n+i)*4
- D.(i*n+j)*4
正确答案及解析
正确答案
B
解析
数组元素存储地址=数组空间首地址+偏移量,其中偏移量计算方式为排列在所访问元素之前元素个数乘以每个元素占用存储单元数。对于元素a[i,j],在按行存储(以行为主序存放)方式下,从第0行和0列开始算起,每一行有m个元素,每一列有n个元素,每个元素占用4个存储单元,在a[i,j]前面已经有i行元素,然后在本行中,前面有j个元素,所以a[i,j]相对于数组空间首地址偏移量为(i*m+j)*4。