C中的扑克牌游戏.请解释西装[4] [9],并面对[13] [6]?

Jas*_*Bui 0 c arrays poker

所以我有一个示例代码,用于为的迷你扑克游戏创建一副牌.但我不明白西装和面孔是如何确定的.为什么这些阵列有2个维度?我知道[9]并且[6]是数组的列,但我不明白它们的目的.

char suits[4][9]= {"Hearts","Diamonds","Clubs","Spades"};   
char faces[13][6]= {"Ace","2","3","4","5","6","7","8","9", "10","Jack",
                "Queen","King"};
Run Code Online (Sandbox Code Playgroud)

Sar*_*oma 6

第一组方括号是第一个数组中元素的数量,第二个方括号是char数组的最大长度(字符串).

第二个括号中char suits[4][9]有九个空格,允许空字符\0用于终止字符串.

所以数组实际上看起来像这样:

char suits[4][9] = {
    {'H', 'e', 'a', 'r', 't', 's', '\0'},
    {'D', 'i', 'a', 'm', 'o', 'n', 'd', 's', '\0'},
    {'C', 'l', 'u', 'b', 's', '\0'},
    {'S', 'p', 'a', 'd', 'e', 's', '\0'}
};
Run Code Online (Sandbox Code Playgroud)