读书人

四维数组在计算机中是如何表示的

发布时间: 2012-03-03 15:33:02 作者: rapoo

四维数组在计算机中是怎么表示的
C语言的环境,有一个四维数组,int cof[4][6][4][4]
在计算机中应该都是以一维的形式保存的吧
想要寻址一个数,比如cof[3][3][3][3]
怎么寻址呢
不明白它距数组首地址的偏移量是怎么算的
谢谢

[解决办法]
int cof[4][6][4][4] 在计算机中保存形式与一个4*6*4*4大小的一维数组相同.
想要寻址一个数,因为编译器在看到数组的定义时就知道了数组每一维的大小.于是可以计算定位到相对于数组开始处的偏移.

[解决办法]
int cof[a][b][c][d];
cof[e][f][g][h]的地址应是:cof + sizeof(int)*e*b*c*d + sizeof(int)*f*c*d + sizeof(int)*g*d +sizeof(int)*h


[解决办法]
哎,粗略的画个草图就能明白了,可惜画不了
虽然多维数组在内存中仍然以一维数组形式排列
但为了容易理解,都是把多维数组分解成几行,每行中又有几列的这种形式
int cof[4][6][4][4]
就是4行,每行中有6个元素,每个元素又是一个有4个子元素一维数组,而数组中的每个子元素仍然还是一个有4个子元素数组

cof[3][3][3][3]距离首地址的偏移量是3*6*4*4+3*4*4+3*4+4

读书人网 >C语言

热点推荐