什么是二维数组偏移量?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了什么是二维数组偏移量?相关的知识,希望对你有一定的参考价值。

比如:A[][]={{1,2,3},{4,5,6},{7,8,9}};
4的偏移量就是3,8的偏移量就是7。
对一个数组 A[M][N]中任一元素A[i][j]的偏移量的计算方法就是:i*N+j;
比如:
上面的4位置是A[1][0],它的偏移量就是1*3+0=3;
8的位置是A[2][1],它的偏移量就是3*2+1=7
-------------------------------------------
二维数组A[20][20]采用行序为主方式存储,每个元素占4个存储单元,并且A[10][5]的存储地址是1000,则A[18][9]的地址是
二给数组在内在中是连续存储的,若有int A[20][20],则存储如下示意:
第1行:
a[0][0]...a[0][19],
第20行:
A[19][0]...A[19][19]
计算一下从A[10][5]~A[18][9]经过了几个元素,用元素数乘以4,结果+1000,就是A[18][9]所在地址。所以1000+((18-10)x20-5+9)x4=1656.。
其中:(18-10)经过的行数,5开始列数,9是结束列数。



以上是关于什么是二维数组偏移量?的主要内容,如果未能解决你的问题,请参考以下文章

[Vijos1512] SuperBrother打鼹鼠 (二维树状数组)

二维数组_一维数组

C++二维数组给一维数组赋值

我可以使用 C++ 中的指针访问二维数组的元素吗?

不使用运算符 [] 在二维静态数组中查找元素

c语言 求二维数组的鞍点