三维数组A[n][m][k],n,m,k三个分量分别称之为行,列,页。
假设A[0][0][0]的存储地址为a,其中每个元素所占内存空间为b,那么计算A[x][y][z]的存储地址的公式为a+(xmk+yk+z)b
三位数组按行优先存储在内存空间中的存储方式为:
首先将第一行第一列的页存满,再存第一行第二列的页,直到第一行存满后再存下一行。
假设以行优先顺序存储三维数组A[5][6][7],其中元素A[0][0][0]的地址为1100,且每个元素占2个存储单元,则A[4][3][2]的地址是(1482)
把三维坐标想象成立方体。分配的空间A[5][6][7]表示层高为5、行数为6、列数为7
因为数数的基本单位其实是列,二维坐标是行号列号,虽然平时可能习惯行号列号层号,但是按照二维的规律,那么三维坐标应该是层号行号列号
那么A[4][3][2]中4、3、2分别对应这个点的层数、行号、列号
位置为4*(6*7)+3*7+2=191
每个元素两个存储单元,最终结果为191*2+1100=1482