问题 单项选择题

设有二维数组A[1..12,1..10],其每个元素占4个字节,数据按列优先顺序存储,第一个元素的存储地址为100,那么元素A[5,5]的存储地址为

A.176

B.276

C.208

D.308

答案

参考答案:D

解析:无论规定行优先或列优先,只要知道以下三要素便可随时求出任一元素的地址:开始结点的存放地址(即基地址)、维数和每维的上下界、每个数组元素所占用的单元数。设一般的二维数组是A[c1..d1,c2..d2],则行优先存储时的地址公式为:LOC(aij)=LOC(acl,c2)+[(i-c1)*(d2-c2+1)+j-c2)]*L;二维数组列优先存储的通式为:LOC(aij)=LOC(ac1,c2)+[(j-c2)*(d1-c1+1)+i-c1)]*L。根据列优先公式得:LOC(A5,5)=100+[(5-1)*12+(5-1)]*4=308。

问答题
单项选择题