二维阵列计算公式

use*_*951 6 c++ multidimensional-array

假设地址为A[10][10]40000,double占用16个字节,并使用字节寻址,地址是A[40, 50]什么?

我只是想在2D中计算一个简单的点,只是想仔细检查我是否插入了等式中的正确值

BA + [n * (i - LBR) + (j - LBC)] * w

40000 +[10*(40-0)+(50-0)]*16

40000+[10*(40)+(50)]*16

40000+[900]*16 = 54400
Run Code Online (Sandbox Code Playgroud)

我在这里正确应用了公式吗?我不确定我是否插入了正确的值?

Dee*_*epu 2

答案取决于您使用的是行主要排序还是列主要排序。在行主排序中,数据按行存储。在列主要排序中,数据按列存储。考虑将以下二维数组存储在内存中,

    11  22  33

    44  55  66

    77  88  99
Run Code Online (Sandbox Code Playgroud)

在行主排序中,元素连续存储为11,22,33,44,55,66,77,88,99. 在列主排序中,元素是连续存储的11,44,77,22,55,88,33,66,99