数据结构二维数组A[i][j]存储地址计算,初始地址为A[0][0]: A[m][n]=P+(m×

数据结构二维数组A[i][j]存储地址计算,初始地址为A[0][0]:
A[m][n]=P+(m×j+n)×b 和
A[m][n]=P+[m×(i-1)+n]×b,
i、j什么情况下-1什么情况下不需要-1?为什么?请大神给个详细回答,绕晕了

第1个回答  2017-12-30


如图

追问

以按行展开为例

追答

我想问一下,学的是C吗

追问

数据结构

C语言版

追答

那就行了,C中A[m][n]不是从0开始的吗
如果你想问m*n阶矩阵的存储,另当别论

更正一下你的说法,是0至m-1行

追问

那请问如果是矩阵应该怎么算呢?

追答

追问

哦哦对对对,明白了,瞬间茅塞顿开,谢谢!!

本回答被提问者采纳
第2个回答  2017-12-30
题目能不能详细点,否则帮不了你追问

就是二维数组存储位置计算公式,我不是写了两个吗,当数组从a[0][0]开始时用上边的公式还是下边的,当数组从a[1][1]时用上边的还是下边的?

追答

M按行存储元素时M[3][5]的存储地址=M[0][0]+(8*3+5)*4 M[0][0]是第一个元素的存储地址。
M按列存储元素时M[3][5]的存储地址=M[0][0]+(7*5+3)*4
可能是和行列有关

相似回答