C语言的扑克牌游戏。请解释花色[4][9]和花色[13][6]?

A poker card game in C. Please explain suits[4][9], and faces[13][6]?

所以我有一个示例代码可以为 中的迷你扑克游戏创建一副纸牌。但是我不明白西装和面孔是如何确定的。为什么这些数组有二维?我知道 [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"};

当你有:

char suits[4][9]

这意味着你的数组有 4 行,每行中的 string 可以有最大长度 9 并减去结尾 '[=15=]'字符,最大长度 8.

同样,

char faces[13][6]

表示您的数组有 13 行,每行中的 string 可以有最大长度 6 并减去结尾的 '[=15=]' 字符, 最大长度 5.

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

char suits[4][9] 中的第二个括号有九个 space 允许 space 用于终止字符串的空字符 [=13=]

所以数组实际上是这样的:

char suits[4][9] = {
    {'H', 'e', 'a', 'r', 't', 's', '[=10=]'},
    {'D', 'i', 'a', 'm', 'o', 'n', 'd', 's', '[=10=]'},
    {'C', 'l', 'u', 'b', 's', '[=10=]'},
    {'S', 'p', 'a', 'd', 'e', 's', '[=10=]'}
};