c语言三维数组问题

c语言三维数组是什么概念?我是自学的,一维二维都明白,到三维了就不知道怎么回事了
a[2][3][2]是怎么解释的?
另外有讲c语言的多维数组这方面比较细的资料或书吗?回答的好追加!谢谢!
另外三维和多维数组,都在哪方面能用到?比如一般的软件开发或是嵌入式等应用或是其他课程在什么情况下需要用到三维和多维?

多个相同的二维数组可以用三维数组表示。或者说三维数组是以二维数组为元素的数组。
比如一个城市有10个学校,每个学校有10个班,每个班有40个学生,那么表示这10个学校的学生的语文成绩的时候,就可以用一个三维数据a[10][10][40]来存储。
温馨提示:内容为网友见解,仅供参考
第1个回答  2011-01-21
三维是一个立方体,你把a [x] [y] [z]中的x,y,z理解成三维空间坐标,这样总能理解了吧
第2个回答  2011-01-20
一位数组 你可以看成是 单个元素组成的数组
那 二维数组 你可以看成是 一维数组 组成的数组
三位数组 自然就是 二维数组组成的数组
完毕
第3个回答  2020-05-27
在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]没有超出范围
第4个回答  2011-01-21
测试通过,你去试试吧!
#include <stdio.h>
#include <string.h>
int data[10][5][3] = {
,
,
,
,
,
,
,
,
,
,
};
void display(int num)
{
int d[4][5][3];
int i,j,k;
for (i = 3; i>=0; --i)
{
memcpy(d[i], data[num%10], sizeof(int)*15);
num /= 10;
}
for (i = 0; i<5; i++)
{
for (j= 0; j<4; j++)
{
for (k=0; k<3; k++)
{
char star = (d[j][i][k] == 0) ? ' ' : '*';
printf("%c", star);
}
printf(" ");
}
printf("\n");
}

}
int main(int argc, char* argv[])
{
int year;
scanf("%d", &year);
display(year);
return 0;
}

c语言三维数组问题
在C语言中,可以定义三维数组来存储和操作三维数据。三维数组是一种具有三个维度的数组,用于存储具有多个层次结构的数据。每个维度都有一个索引,用于访问数组中的特定元素。三维数组的基本概念 在C语言中,数组是一种用于存储相同类型元素的数据结构。三维数组是数组的扩展,它具有三个维度或层次。这对于...

三维数组怎么理解c语言
先理解二维数组,int a; 理解成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列 的数组。原来的 1 到 12 数值在 第一...

C语言中,a是一个三维数组,那么a+1是什么意思?
C语言中,a是一个三维数组,那么a+1是,这个三维数组中的第二个二维数组。这就好比用一个二维数组来表示一张表格。那么这个三维数组就由若干张表格组成,a+1就表示其中的第二张表格。

用C语言,动态三维数组
1、先说二维,可以这么理解:int n[3]有3个int那么,int m[5][3]有5个int[3]赋值时:n[1]=3把3给1号m[4]={5,9,4}m[4]是个int[3]类型,这么赋值,也就是这么赋值:m[4]的[0]是5:m[4][0]=5m[4][1]=9m[4][2]=4懂了吗?三维甚至更多维大同小异,比如int k[4][5...

c语言问题!!!
ACT_UP=0,ACT_DOWN,ACT_LEFT,ACT_RIGET };int Action( int &LoctionX, int &LoctionY, ACTION act ){ if( LoctionX==0 && LoctionY==1 ){ LoctionX=4;return 10;} int x=LoctionX;int y=LoctionY;switch(act){ case ACT_UP: y--;break;case ACT_DOWN:y++;break;case...

C语言矩阵输出,我创建了有一个三维数组,想四个一组的按二维数组输出,算 ...
由于数组在内存中是按顺序存储的,所以可以设置一个指向数组的指针,移动指针即可,每四位一行,可以对4取模,为0则换行!望采纳 include <stdio.h> include <stdlib.h> int main(void){ int arr[2][2][2] = {111,121,112,119,115,116,137,182};int *p = &arr[0][0][0];int iter...

C语言 三维数组初始化
1、第一步,需要定义数组。 数组的常见类型是int,float,char等,可以通过输入进行定义,见下图,转到下面的步骤。2、第二步,执行完上面的操作之后,数组的名称可以自定义,见下图,转到下面的步骤。3、第三步,执行完上面的操作之后,数组的大小是在数组定义阶段确定的,输入数字是数组的大小,见...

C语言 二维数组和三维数组
二维数组定义为数据类型 数组名[ROW][COL]。形象理解,二维数组如同表格,便于理解。下标从0开始。访问所有元素需双重循环,分别遍历行和列。二维数组内存分配与一维数组相同,都是从0开始的下标。初始化时,需按照数组的行数和列数给定元素值。遍历二维数组时,需用双重循环。三维数组定义为数据类型 数组...

C语言三维数组无法用指针打印出其内容
C语言中多维数组有两种存储方式,一种是按行排列,一种是按列排列,所以你不会知道编译器系统是基于按行排列还是按列排列的。这时,不能把多维数组简单地抽象为一个一维数组处理(如果你处理的正是一个一维数组就没有讨论的必要了)。如果出现这种情况,并且你一定要使用这种类似于一维数组的访问方式,...

C语言指针定义三维不规则数组
void check(int * * *ppp) {printf("三维数组Begin:{\\n");printf("{ %d,%d,\\n", ppp[0][0][0], ppp[0][0][1]);printf("%d,%d,%d,%d,\\n", ppp[0][1][0], ppp[0][1][1], ppp[0][1][2], ppp[0][1][3]);printf("%d,%d,%d,%d,%d },\\n", ppp[0][2]...

相似回答