如何在 C 中初始化字符串数组?
How can I initialize a string array in C?
如果我有char arr[10][2]
;
如何初始化它?有多少种方法,哪种方法最好?
char arr[10][2] = {""};
这是正确的吗?
要将所有字符串初始化为空字符串,请使用:
char arr[10][2] = {0};
如果您需要将它们初始化为不同的值,显然您必须使用这些值。
你可以初始化如下:
char arr[10][2] = {
{"H"},
{"A"},
{"C"},
....
//and so on at most 10
};
下面是一些如何在 C 中初始化字符数组的示例。您可以对数组的任何元素使用所示初始化的任意组合
#include <stdio.h>
int main(void)
{
char arr1[10][2] = { "A" };
char arr2[10][2] = { { "A" } };
char arr3[10][2] = { { "AB" } };
char arr4[10][2] = { { 'A', '[=10=]' } };
char arr5[10][2] = { { 'A', 'B' } };
char arr6[10][2] = { [0] = "A" };
char arr7[10][2] = { [0] = "AB" };
char arr8[10][2] = { [0] = { "AB" } };
char arr9[10][2] = { [0] = { [0] = 'A', [1] = '[=10=]' } };
char arr10[10][2] = { [0] = { [0] = 'A', [1] = 'B' } };
// to avoid diagnostic messages of unused variables
( void )arr1;
( void )arr2;
( void )arr3;
( void )arr4;
( void )arr5;
( void )arr6;
( void )arr7;
( void )arr8;
( void )arr9;
( void )arr10;
return 0;
}
你也可以使用像这样的初始化
char arr1[10][2] = { "" };
char arr1[10][2] = { '[=11=]' };
你不能在 C 中使用这样的初始化
char arr1[10][2] = {};
这在 C++ 中是允许的。
如果我有char arr[10][2]
;
如何初始化它?有多少种方法,哪种方法最好?
char arr[10][2] = {""};
这是正确的吗?
要将所有字符串初始化为空字符串,请使用:
char arr[10][2] = {0};
如果您需要将它们初始化为不同的值,显然您必须使用这些值。
你可以初始化如下:
char arr[10][2] = {
{"H"},
{"A"},
{"C"},
....
//and so on at most 10
};
下面是一些如何在 C 中初始化字符数组的示例。您可以对数组的任何元素使用所示初始化的任意组合
#include <stdio.h>
int main(void)
{
char arr1[10][2] = { "A" };
char arr2[10][2] = { { "A" } };
char arr3[10][2] = { { "AB" } };
char arr4[10][2] = { { 'A', '[=10=]' } };
char arr5[10][2] = { { 'A', 'B' } };
char arr6[10][2] = { [0] = "A" };
char arr7[10][2] = { [0] = "AB" };
char arr8[10][2] = { [0] = { "AB" } };
char arr9[10][2] = { [0] = { [0] = 'A', [1] = '[=10=]' } };
char arr10[10][2] = { [0] = { [0] = 'A', [1] = 'B' } };
// to avoid diagnostic messages of unused variables
( void )arr1;
( void )arr2;
( void )arr3;
( void )arr4;
( void )arr5;
( void )arr6;
( void )arr7;
( void )arr8;
( void )arr9;
( void )arr10;
return 0;
}
你也可以使用像这样的初始化
char arr1[10][2] = { "" };
char arr1[10][2] = { '[=11=]' };
你不能在 C 中使用这样的初始化
char arr1[10][2] = {};
这在 C++ 中是允许的。