c语言中输出int mun[][3]{{1,2},3,4,5,6};中 6为什么不输出
时间: 2024-03-17 20:43:03 浏览: 126
对于代码 int mun[][3]={{1,2},3,4,5,6};,它会被解释为一个二维数组 mun,其中包含两个元素,每个元素是一个包含 3 个 int 类型的数组。其中第一个元素的值是 {1, 2, 0},第二个元素的值是 {3, 4, 5},因为剩下的元素会自动填充为 0,所以这个数组实际上是等价于下面的代码的:
```c
int mun[2][3] = {{1, 2, 0}, {3, 4, 5}};
```
可以用下面的代码来验证这个结果:
```c
#include <stdio.h>
int main() {
int mun[][3]={{1,2},3,4,5,6};
printf("%d %d %d\n", mun[0][0], mun[0][1], mun[0][2]);
printf("%d %d %d\n", mun[1][0], mun[1][1], mun[1][2]);
return 0;
}
```
这个程序会输出:
```
1 2 0
3 4 5
```
因为第一个元素的第三个元素被自动填充为 0,第二个元素的第一个和第二个元素被自动填充为 0。所以 6 并没有被输出。如果要输出 6,需要在定义后使用赋值语句为相应的元素赋值,例如:
```c
mun[1][2] = 6;
printf("%d %d %d\n", mun[1][0], mun[1][1], mun[1][2]);
```
这个程序会输出:
```
3 4 6
```
相关问题
c语言中输出int mun[][4]={1,2,3,4,5,6};
对于代码 int mun[][4] = {1, 2, 3, 4, 5, 6};,它会被解释为一个二维数组 mun,其中包含两个元素,每个元素是一个包含 4 个 int 类型的数组。其中第一个元素的值是 {1, 2, 3, 4},第二个元素的值是 {5, 6, 0, 0},因为剩下的元素会自动填充为 0,所以这个数组实际上是等价于下面的代码的:
```c
int mun[2][4] = {{1, 2, 3, 4}, {5, 6, 0, 0}};
```
可以用下面的代码来验证这个结果:
```c
#include <stdio.h>
int main() {
int mun[][4] = {1, 2, 3, 4, 5, 6};
printf("%d %d %d %d\n", mun[0][0], mun[0][1], mun[0][2], mun[0][3]);
printf("%d %d %d %d\n", mun[1][0], mun[1][1], mun[1][2], mun[1][3]);
return 0;
}
```
这个程序会输出:
```
1 2 3 4
5 6 0 0
```
因为第二个元素的后两个元素被自动填充为 0。
c语言中输出int mun[][3]{{1,2},3,4,5,6};
对于代码 int mun[][3]={{1,2},3,4,5,6};,它会被解释为一个二维数组 mun,其中包含两个元素,每个元素是一个包含 3 个 int 类型的数组。其中第一个元素的值是 {1, 2, 0},第二个元素的值是 {3, 4, 5},因为剩下的元素会自动填充为 0,所以这个数组实际上是等价于下面的代码的:
```c
int mun[2][3] = {{1, 2, 0}, {3, 4, 5}};
```
可以用下面的代码来验证这个结果:
```c
#include <stdio.h>
int main() {
int mun[][3]={{1,2},3,4,5,6};
printf("%d %d %d\n", mun[0][0], mun[0][1], mun[0][2]);
printf("%d %d %d\n", mun[1][0], mun[1][1], mun[1][2]);
return 0;
}
```
这个程序会输出:
```
1 2 0
3 4 5
```
因为第一个元素的第三个元素被自动填充为 0。
阅读全文