今天看到有个人在群上问了一道练习题,如图
写了一下才发现数组存储还分按行和按列的存储方式。
个人觉得答案有个应该是这样的:
感觉不难,但很容易写错。
下面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