如何初始化二维数组中的第一行?
How do I initialize the first row in a 2D array?
我想要一个包含 4 列的 13 行数组,我希望第一行包含字符 "C"、"D"、"H" 和 "S",但是那不是我得到的。这是我的代码:
#include <stdio.h>
int main(void)
{
char a[13][4] = {"C", "D", "H", "S"};
int i, j, k;
for (i = 0; i < 13; i++)
{
for (j = 0; j < 4; j++)
{
printf("%c ", a[i][j]);
}
printf("\n");
}
return 0;
}
这是它输出的内容:
C
D
H
S
什么时候应该
C D H S
我已经尝试使用谷歌搜索教程来了解如何初始化多维数组,我认为我做的是对的,但我一定是做错了什么,出于某种原因我看不到。
您需要使用字符常量而不是字符串常量。将双引号改为单引号:
char a[13][4] = {'C', 'D', 'H', 'S'};
宣言
char a[13][4] = {"C", "D", "H", "S"};
用四个字符串 "C", "D", "H"
和 "S"
初始化数组 a
的前四行。如果你只想用字符 'C', 'D', 'H'
和 's'
初始化第一行,那么它应该像
char a[13][4] = {{'C', 'D', 'H', 'S'}};
数组的其他元素将被初始化为'[=17=]'
个字符。
我想要一个包含 4 列的 13 行数组,我希望第一行包含字符 "C"、"D"、"H" 和 "S",但是那不是我得到的。这是我的代码:
#include <stdio.h>
int main(void)
{
char a[13][4] = {"C", "D", "H", "S"};
int i, j, k;
for (i = 0; i < 13; i++)
{
for (j = 0; j < 4; j++)
{
printf("%c ", a[i][j]);
}
printf("\n");
}
return 0;
}
这是它输出的内容:
C
D
H
S
什么时候应该
C D H S
我已经尝试使用谷歌搜索教程来了解如何初始化多维数组,我认为我做的是对的,但我一定是做错了什么,出于某种原因我看不到。
您需要使用字符常量而不是字符串常量。将双引号改为单引号:
char a[13][4] = {'C', 'D', 'H', 'S'};
宣言
char a[13][4] = {"C", "D", "H", "S"};
用四个字符串 "C", "D", "H"
和 "S"
初始化数组 a
的前四行。如果你只想用字符 'C', 'D', 'H'
和 's'
初始化第一行,那么它应该像
char a[13][4] = {{'C', 'D', 'H', 'S'}};
数组的其他元素将被初始化为'[=17=]'
个字符。