dousao 发表于 2007-12-20 19:24

3维数组初级问题

typedef struct{
int *base;//数组存储区的首地址指针
int index[3];//存放3维数组各维的长度
int c[3];//存放3维数组的各维ci值(i是下标)
}array;
index[]就是存放譬如a[i][j][k]中的
index[0]=i
index[1]=j
index[2]=k
对不对?
c[]中存放什么?不太懂.

zxc1998 发表于 2007-12-20 21:06

c[ ] 中存放的应该是维的大小,例如:a[i][j][k]的话,
c[0] = j*k, c[1] = k, c[2] = 1;
这样定义后,对于数组a中的任意i,j,k,它的位置在
  i*c[0] + j*c[1] + k*c[2]
a[i][j][k]  == *(a + i*c[0] + j*c[1] + k*c[2] )。

页: [1]

编程论坛