在这个程序中,一个数组有3种大小。第一个尺寸是指行,第二个是指列,但第三个是什么?我有另一个问题,数组引用%s
来打印。但是在这个由%d
打印的程序数组中。由于数组分配给x
值。哪个是int
数据类型,但我们打印数组。那么%d
怎么样?
#include<stdio.h>
int main(void) {
char array[3][3][3];
int i,j,k;
int x = 1;
for(i=0; i<3; i++){
for(j=0; j<3; j++){
for(k=0; k<3; k++){
array[i][j][k] = x;
printf("%d\n", array[i][j][k]);
x++;
}
}
}
return 0; }
答案 0 :(得分:4)
char[3]
填充的内容如下:
+---+---+---+
| 1 | 1 | 1 |
+---+---+---+
char[3][3]
填充的内容如下:
+---+---+---+
| 1 | 1 | 1 |
+---+---+---+
| 1 | 1 | 1 |
+---+---+---+
| 1 | 1 | 1 |
+---+---+---+
char[3][3][3]
填充的是一对一的正方形阵列。会有一个立方体。
在上图中,每个小立方体将代表单个细胞,因此总共有27个细胞。
我很高兴你没有问过char[3][3][3][3]
。
答案 1 :(得分:0)
首先从第二个问题开始,你有一个由(小)整数组成的数组数组。如何使用printf
打印整数?您(可以)使用"%d"
格式。你很困惑(我猜)因为字符串(用"%s"
打印)是字符数组。但是,您不打印数组,而是打印单个int
值。
至于第一个问题,部分答案在上段。你有一个由三个三(小)整数数组组成的三个数组的数组。行和列只是标签,对于“3d”数组,它们没有多大意义。
答案 2 :(得分:0)
关于数组[3] [3] [3]的问题,这是一个三维表。您可以将其视为三个二维表。 表0:3x3 表1:3x3 表2:3x3
行和列是我们用于更好地理解2维元素概念的描述。数组可以有更多的维度 - 如果它对你有帮助,你可以把它想象成列表(列表(列表(..))
关于字符问题和整数表示,字符和整数可以在C中以相同的方式使用。字符本质上是由ASCII表中的字符索引表示的ASCII字符。即。 'a'是97.
答案 3 :(得分:0)
让我们考虑一下书。本书页面上的一行是一维数组。整个页面是一个二维数组。整本书是一个3d数组。让我们假设,这本书是在一个盒子里,然后该框代表一个4d数组。一组盒子是5d阵列。所以,你可以考虑更多。因此,我们将第一个框的第一本书的第一页的第一个元素表示为[0] [0] [0] [0] [0]。
%s - Take the next argument and print it as a string
%d - Take the next argument and print it as an int
这里,您的数组元素是整数。您的代码逐个打印数组元素。
答案 4 :(得分:-1)
%d
用于十进制,%s
用于字符串。
这里是3D阵列的表示,第三个维度是&#34;深度&#34;换句话说,第i行和第j列的内容(在2d数组中将是一个元素,但在3D数组中是一个数组)
int myFirst3DArray [3][4][2] =
{
{{10,11},{12,13},{14,15},{16,17}},
{{18,19},{20,21},{22,23},{24,25}},
{{26,27},{28,29},{30,31},{32,33}}
};