列表

详情


若二维数组arr[1..M,1..N]的首地址为base,数组元素按列存储且每个元素占用K个存储单元,则元素arr[i,j]在该数组空间的地址为(  )。

A. base+((i-1)*M+j-1)*K

B. base+((i-1)*N+j-1)*K

C. base+((j-1)*M+i-1)*K

D. base+((j-1)*N+i-1)*K

参考答案: C

详细解析:

题目告诉我们是按列存储,那么在存储元素arr[i,j]以前,应该存放了j-1列,而每一列中有M个元素(即数组的行数),那么应该有(j-1)*M个元素,而在第j列中,存放元素arr[i,j]以前,应该有i-1个元素被存放,因此,在存放元素arr[i,j]以前总共有(j-1)*M+i-1个元素被存放,而每个元素占用K个存储单元,因此本题答案选C。

上一题