当前位置:首页 » 编程语言 » c语言三维数组
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言三维数组

发布时间: 2022-01-18 08:38:20

c语言三维数组的作用

一维数组只有一行元素,相当于一本书中的一行。比如存储一个学生6门课的成绩。
二维数组分为若干行若干列,相当于一本书中的一页。比如存储40个学生6门课的成绩。
三维数组分为若干行若干列若干页,相当于一本书。用于存储有三个维度(三个方向)的一批数据。比如存储10个班级,每班40个学生,6门课的成绩。(当然也可以理解成400个学生,6门课的成绩,并用二维数组存储,但是不容易体现班级的概念。)

Ⅱ C语言中怎么给三维数组赋值。

struct Point{
int x;
int y;
};

Point* P1 = (Point*)malloc(你需要的数目*sizeof(Point));

完全不需要3维数组, 一个结构加个指针就可以了.

Ⅲ C语言三维数组(本人新手)

输出格式没有,就是printf("%d",......),后面的输出表达式也不对,三维数组表示方法不正确,你想输出啥

Ⅳ 关于c语言的三维数组的输出

楼上正解,其实你主要考虑下,数组在内存中存储的时候,是按照一维数组的模式进行存储的,这也就是为什么我们可以把a[2][2][3]强制转换成一个int*,从而通过下标就可以访问到对应的元素

Ⅳ c语言、三维数组

你就想象成全是一维的,C原来设计也只有一维。你可以想象成有个特殊的数组里面每个元素又是一个数组,而这个数组里面的每个元素他又是一个数组。你要说用线性代数可以空间理解,但是3维以上你给我空间想象一下啊,我想不到。指针当然要占内存。虽然它指向某个内存的地方,但是他同样需要某个东西指向它啊。打个比方好比它就是个路标,指向某个方向。但是机器编译需要知道指向路标的路标一样。我是这样理解的。

Ⅵ 三维数组怎么理解c语言

先理解二维数组,int a[3][4]; 理解成3行4列。例如:
1 2 3 4 // 第1行
5 6 7 8 // 第2行
9 10 11 12 // 第3行。 你可以理解成 行索引号 是直角坐标y值,列索引号 是直角坐标x值.
现在变3维 int a[2][3][4]; 理解成深度(或高度)有2层的 3行4列 的数组。
原来的 1 到 12 数值在 第一层,现在 有了第二层,第二层 数值是
13 14 15 16
17 18 19 20
21 22 23 34
所以 3 维数组 int a[z][y][x], 就有 z 层 y*x 大小的矩阵。

Ⅶ C语言中三维数组的赋值问题

int limit[4][5][2]={{3,8}, {4,9}, {5,0}, {1,6}, {2,7},
{2,7}, {3,8}, {4,9}, {5,0}, {1,6},
{1,6}, {2,7}, {3,8}, {4,9}, {5,0},
{1,6}, {2,7}, {3,8}, {4,9}, {5,0}};
你这样定义是:int limit[20][2]。int limit[4][5][2]应该是
int limit[4][5][2]={ {{3,8}, {4,9}, {5,0}, {1,6}, {2,7}},
{{2,7}, {3,8}, {4,9}, {5,0}, {1,6}},
{{1,6}, {2,7}, {3,8}, {4,9}, {5,0}},
{{1,6}, {2,7}, {3,8}, {4,9}, {5,0}} };

Ⅷ c语言三维数组问题

在c语言,数组存储空间是连续的,所以三维数组其实可以看成特殊的一维数组,p[3][4][5]可以看成p[3*4*5]的一维数组,因此p[1][7][1]
=
p[1*4×5+7*5+1]
=
p[56]
56<3*4*5=60
,所以p[1][7][1]没有超出范围

Ⅸ c语言三维数组怎么用的

在c语言中,多维数组的存放规律都是第一维下标变化的最慢,越往后维数越高,下标变化越快,例如:对于三位数组a[2][2][2],其赋值顺序就是:
a[0][0][0]
a[0][0][1]
a[0][1][0]
a[0][1][1]
a[1][0][0]
a[1][0][1]
a[1][1][0]
a[1][1][1]
总结的说,就是“维数最高优先存储”
至于什么情况用三维数组,这要看你编程思想了,当你想编的程序抽象成三维的东西,就用三维数组来表示,就如矩阵似的,我们把矩阵看成是一个图,二维的,所以用了二维数组
希望可以帮助你