数组 || 按行按列存储【转载】

今天看到有个人在群上问了一道练习题,如图

写了一下才发现数组存储还分按行和按列的存储方式。数组 || 按行按列存储【转载】_第1张图片

个人觉得答案有个应该是这样的:数组 || 按行按列存储【转载】_第2张图片

感觉不难,但很容易写错。

下面PO上一些转载来的关于数组按行、按列存储的小知识:

二维数组

二维数组Amn可视为由m个行向量组成的向量,或由n个列向量组成的向量。

数组的顺序存储方式

由于计算机内存是一维的,多维数组的元素应排成线性序列后存人存储器。

数组一般不做插入和删除操作,即结构中元素个数和元素间关系不变化。一般采用顺序存储方法表示数组。

(1) 行优先顺序
将数组元素按行向量排列,第i+1个行向量紧接在第i个行向量后面。
例: 二维数组Amn的按行优先存储的线性序列为:
a11,a12,…,a1n,a21,a22,…,a2n,……,am1,am2,…,amn

注意:
PASCAL和C语言中,数组按行优先顺序存储。

行优先顺序推广到多维数组,可规定为先排最右的下标。

(2) 列优先顺序

将数组元素按列向量排列,第i+1个列向量紧接在第i个列向量后面。

例: 二维数组Amn的按列优先存储的线性序列为:
a11,a21,…,am1,a12,a22,…,am2,……,a1n,a2n,…,amn

注意:
FORTRAN语言中,数组按列优先顺序存储。
列优先顺序推广到多维数组,可规定为先排最左的下标。


本文来自 zhoxier 的CSDN 博客 ,全文地址请点击:https://blog.csdn.net/zhoxier/article/details/8058176?utm_source=copy

你可能感兴趣的:(数组 || 按行按列存储【转载】)