将数组插入数组

Ani*_*Ani 1 c arrays

为了制作井字棋游戏,我决定最佳解决方案是创建数组的数组。我找到了仅适用于 C# 和 C++ 的解决方案,并且我不确定 C 中是否存在此选项。我想知道是否可以使用一些可用于 C 的库来创建数组的数组。

我试图执行的代码:

char first_row[] = {' ', ' ', ' '};
char second_row[] = {' ', ' ', ' '};
char third_row[] = {' ', ' ', ' '};
char rows[] = {first_row, second_row, third_row};
Run Code Online (Sandbox Code Playgroud)

我还想知道如何访问数组内的数组。我自己是一名Python专家,我发现这个功能的缺失完全让我大吃一惊。

upd:我发现信息表明它在C99中是可能的,但是没有描述如何制作它。

Wei*_*hou 5

要在 C 中创建二维 3x3 数组,请使用以下命令:

char rows[3][3] = {{' ', ' ', ' '}, {' ', ' ', ' '}, {' ', ' ', ' '}};
Run Code Online (Sandbox Code Playgroud)

您可以省略第一个维度,在这种情况下,维度将从初始值设定项的数量派生。喜欢:

char rows[][3] = {{' ', ' ', ' '}, {' ', ' ', ' '}, {' ', ' ', ' '}};
Run Code Online (Sandbox Code Playgroud)

请注意,这里第二个维度3是强制性的,不能省略。

您还可以执行以下操作,但是您的数组不是二维数组,而是指针数组。

char *rows[] = {first_row, second_row, third_row};
Run Code Online (Sandbox Code Playgroud)

在这两种情况下,您都可以使用相同的语法(如rows[0][0].