A-A+
● 若二维数组arr[1..M 1..N]的首地址为base 数组元素按列存储且每个元素占
问题详情
● 若二维数组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。参考答案C