当前位置: C语言 -- 专题 -- 行主序与列主序

行主序与列主序

行主序(row-major order)与列主序(column-major order)是线性存储多维数组的两种方法,其主要差别在于哪些数组元素在内存中是连续的。对于行主序,同一行的连续数组元素彼此相邻;对于列主序,同一列的连续数组元素彼此相邻。

以一个33列的二维数组为例:

arr[0][0] arr[0][1] arr[0][2]
arr[1][0] arr[1][1] arr[1][2]
arr[2][0] arr[2][1] arr[2][2]

1、对于行主序,数组元素在内存中的存储形式为:

arr[0][0] arr[0][1] arr[0][2] arr[1][0] arr[1][1] arr[1][2] arr[2][0] arr[2][1] arr[2][2]

2、对于列主序,数组元素在内存中的存储形式为:

arr[0][0] arr[1][0] arr[2][0] arr[0][1] arr[1][1] arr[2][1] arr[0][2] arr[1][2] arr[2][2]

C语言中多维数组的存储使用的是行主序形式。