若二维数组arr[1..M, 1..N]的首地址为base,数组元素按列存储且每

资格题库2022-08-02  46

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

选项 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。
转载请注明原文地址:https://tihaiku.com/congyezige/2417655.html

最新回复(0)