2016-11-25 77 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 
};