关于计算数组的存储地址的问题

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

这个二维数组,有12行10列。但是数据是按列优先顺序存储,
所以,其存储结构形式类似于:

a[1,1] a[2,1] a[3,1] ........ a[12,1]
a[1,2] a[2,2]..................a[12,2]

.....................................

a[1,10]........................a[12,10]

所以 A[5,5]的存储地址为 ((5-1)*12+5-1)*4+100追问

你确定吗?我做了一道题,也是和你一样的求法,得出308,但是答案是208.是答案错了还是我们错了呢?

追答

确定是这样做的,你可以自己验算一下这个公式。
将行和列数 都改成 3行3列,来验证这个公式。

我验证是正确的。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-09-13
这个很简单:
(12*4+(5-1))*4+100=308
你的208是没有加初始地址:100
相似回答