三维数组地址计算

把三维坐标想象成立方体。例如A[5][4][3]表示层高为5、行数为4、列数为3
因为数数的基本单位其实是列,二维坐标是行号列号,虽然平时可能习惯行号列号层号,但是按照二维的规律,那么三维坐标应该是层号行号列号

 

设A[5][4][3]在内存中首地址为1000,每个元素占2个存储单元,按行优先存储

求A[4][3][2]的首地址(A的下标从0开始)

那么A[4][3][2]中4、3、2分别对应这个点的层数行号列号
位置为4*(4*3)+3*3+2=59

第一个为4则说明是4前面有0,1,2,3共4整层

先把4层算出来,每层就是行乘以列4*3=12

然后后面的[3][2]按照2维数组(列优先同理)算就行3*3代表行数2代表第3个的首地址
每个元素两个存储单元,最终结果为1000+59*2=1118
 

    原文作者:Helloworld-睖
    原文地址: https://blog.csdn.net/qq_36623595/article/details/103302089
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞