多维数组的顺序表示

2014-11-24 09:45:09 · 作者: · 浏览: 1

多维数组节点,有四个元素
struct array
{
int *base; //存放数组的元素的基地址
int dim; //表示多维数组的维数
int *bounds; //表示每一维的长度
int *constants; //存放数组映象函数常量基址


};


譬如一个2*3的二维数组,dim就等于二,行优先存储,bounds[0]就为2,bounds[1]就为3。


对于constants,constant[i]就是第i+1层的数组中每一元素(数组)的大小。
对于行主序的2*3的二维数组来说,constant[1]就是每一行的一个元素(如:((a,b,c),(d,e,f))中a,f)占据的内存长度
constant[0]就是当前行每一列(如:(A,B),其中A=(a,b,c),B=(d,e,f)),A、B占据的内存长度。