关于计算数组元素地址(设数组a[3..16,5..20]的元素以列为主序存放,每个元素占用两个存储单元.......)

●设数组a[3..16,5..20]的元素以列为主序存放,每个元素占用两个存储单元,则数组元素a[i,j](3≤i≤16,5≤j≤20)的地址计算公式为___(11)___。

(11) A.a-118+2i+28j B.a-116+2i+28j
C.a-144+2i+28j D.a-146+2i+28j

这个题的详细步骤是什么?
我算的不对。。。。
我没分了。。。还请各位多帮忙啊。。。
这个题正确答案选D
我需要知道的是步骤。。

按照常规的,假设我们是以行为主序列,(设定一行的长度为N,每个元素占用B个存储单元)那么a[2,3]的的位置为[(2-0)*N+(3-0)]*B,因为数组的坐标是从0开始的。
同理,如果是以列为主序列,那么坐标就要换下位置了。[(3-0)*N+(2-0)]*B

如题中,是以列为主序列,那么公式就应该是[(J-5)*14+(I-3)]*2

14 是说明有14行 3..16 得出的。。

下面就要说明a是怎么来的了,数组中我们默认是以a0作为数组的第一存储地址,按照题目的意思,就是a了。
所以结果可以确定为a+[(J-5)*14+(I-3)]*2

即为D选项。如有疑问,咱们可以验证,a(3,5)应该是数组的第一存储地址a,选项中只有D符合。

如有疑问,请百度消息。

参考资料:自学成才。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-06-16
fgf

参考资料:gfg

相似回答