已知二维数组的例子a[10][8]采用行主序存储,数组首地址是1000,每个元素占用4字节

试求元素A[1,2]的存储首地址我看答案给出来的结果是78+1*4*8+2*4=118,但是我算的是78+1*2*4+2*4=94答案的是如何求出来的,麻烦给个具体公式求解过程的... 试求元素A[1,2]的存储首地址我看答案给出来的结果是78+1*4*8+2*4=118,但是我算的是78+1*2*4+2*4=94答案的是如何求出来的,麻烦给个具体公式求解过程的

三维数组以行为主序存储其元素地址公式为:

  其中ci,di是各维的下界和上界,Vi=di-ci+1是各维元素个数L是一个元素所占的存储单元数。

认真看下题目啊这个是三维数组吗。首地址是78总数才几个,怎麼可能算到958

你对这个回答的评价是

奈阿依拉:希腊神话中的仙女,为太阳神赫利俄斯生了两个女儿并与她们一起看守她们父亲的羊群囷牛群。典出荷马史诗《奥德赛》

我的心愿——又甜蜜,又绝望……

即便是风在吹并非所有都是靠航行。

这只是我遗传来的不适。

夲回答被提问者和网友采纳

你对这个回答的评价是

}

如果下标是从0开始那么M行N列的矩阵,A[i][j]的起始地址为:起始地址 +(i*N+J)* 每个元素所占字节数

如果下标是从1开始那么M行N列的矩阵,A[i][j]的起始地址为:起始地址 + ((i-1)*N+J-1)*每个元素所占字节数

為什么下标从0算起不需要减1呢假若3x3的矩阵:

  1. 同上,A[2][2]前面只有2行元素数量恰好等于A[2][2]所在的行号,A[2][2]所在的行前面也只有下标为A[2][0],A[2][1]两个元素數量恰好等于A[2][2]所在的列号。
  2. 同上A[i][j]前面有i行元素,第i行前面有j个元素

可以得出下标为0的A[i][j]地址算法:起始地址 +(i*N+J)* 每个元素所占字节数

下标从1算起A[i][j]前面存在 i-1 行元素,第i行前面有 j-1 个元素所以

不难看出,计算A[i][j]的地址其实质就是计算A[i][j]前面总共多少个元素的问题,A[i][j]的地址  起始地址+A[i][j]前媔元素所占的字节数

经过上面的推导希望能帮助大家不在犯迷糊~

}

我要回帖

更多关于 二维数组的例子 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信