▦矩阵视图
💾内存排列
↓
行优先地址公式
LOC(aij) = LOC(a00) + (i * n + j) * L
LOC(aij) = LOC(a00) + (i * n + j) * L
💡原理说明
二维数组在内存中必须以一维线性方式存储。行优先按从左到右、从上到下的顺序存储;列优先按从上到下、从左到右的顺序存储。 不同编程语言默认方式不同:C/C++/Python 使用行优先,Fortran/MATLAB 使用列优先。
| 存储方式 | 地址计算公式 | 典型语言 |
|---|---|---|
| 行优先 | LOC(aij) = base + (i * n + j) * L | C, C++, Java, Python |
| 列优先 | LOC(aij) = base + (j * m + i) * L | Fortran, MATLAB, R |