2016-11-25 74 views
0

如果我有char arr[10][2];如何初始化c中的字符串数组?

我该如何初始化它?有多少种方式,哪一种是最好的方式?

char arr[10][2] = {""};这是正确的吗?

+0

是否要将所有元素初始化为“0”或特定值? – mch

+0

您可能想要参考http://stackoverflow.com/questions/201101/how-to-initialize-all-members-of-an-array-to-the-same-value – hbagdi

回答

2

下面是如何字符阵列可以在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', '\0' } }; 
    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] = '\0' } }; 
    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] = { '\0' }; 

您不得在C中使用这样的初始化

char arr1[10][2] = {}; 

在C++中是允许的。

2

要初始化所有的字符串为空字符串,请使用:

char arr[10][2] = {0}; 

如果你需要将它们初始化到不同的东西,你必须使用这些值,很明显。

0

如下时,初始化:

char arr[10][2] = { 
    {"H"}, 
    {"A"}, 
    {"C"}, 
    .... 
    //and so on at most 10 
};