问题 单项选择题

若二维数组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共M行N列,下标均从1开始。元素arr[i,j]在数据arr的第i行第j列,如果数组元素按列存储,则1~j-1列共有(j-1)*M个元素,a[i,j]之前共(j-1)*M+i-1个元素,元素arr[i,j]在该数组空间的地址为base+((j-1)*M+i-1)*K。

多项选择题
单项选择题