牛骨文教育服务平台(让学习变的简单)
博文笔记

关于多维数组的一点个人的理解(以三维数组为例)

创建时间:2015-08-06 投稿人: 浏览次数:2960

直接上程序!!!!!(下面的程序是以行为优先的数组为例

#include <stdio.h>

int main(int argc, char *argv[])
{
int array[3][2][2] = {0,1,2,3,4,5,6,7};//相当于3个2 * 2 的二维数组
printf("%d %d %d %d ",&array[0],&array[0][0],&array[0][0][0],&array);
//如果说把三维数组比作一个立方体的话,那么这个立方体底边是个2*2的正方形,高为3
//注意:三维数组的高维度是写在最前面的,也就是立方体的z
//下面的四行代码相当于立方体的第一层
printf("%d ",&array[0][0][0]);
printf("%d ",&array[0][0][1]);
printf("%d ",&array[0][1][0]);
printf("%d ",&array[0][1][1]);
//下面的四行代码相当于立方体的第二层
printf("%d ",&array[1][0][0]);
printf("%d ",&array[1][0][1]);
printf("%d ",&array[1][1][0]);
printf("%d ",&array[1][1][1]);
//下面的立方体相当于第三层
printf("%d ",&array[2][0][0]);
printf("%d ",&array[2][0][1]);
printf("%d ",&array[2][1][0]);
printf("%d ",&array[2][1][1]);
/*如果给出一个数组首地址,那么以求最后一个元素array[2][1][1]的地址为例
最后一个元素的地址 = (最高一层立方体底下的所有元素的个数 + 元素所在层的除了元素所在行的所有元素
+ 元素所在行的除自己之外的所有元素)* 一个元素所占字节数 + 数组首地址;
公式也就为Loc(Aijk) = (i * 2 * 2 + j * 2 + k) + Loc(A000); */
//另:上面的输出顺序也是三维数组的赋值顺序
return 0;
}
声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。