for循环、字符串与数组(13)

3.6.2  创建多维数组

程序做的第一件事情是为井字棋游戏棋盘声明和初始化一个数组

char board[ROWS][COLUMNS] = { {'O', 'X', 'O'},

{' ', 'X', 'X'},

{'X', 'O', 'O'} };

代码声明了一个3×3(因为ROWS和COLUMNS都为3)的二维字符数组,并初始化了所有元素。

提示

可以只声明而不初始化多维数组。如下例所示:

char chessBoard[8][8];

上面的代码声明了一个8×8的二维字符数组chessBoard。另外,多维数组的每维大小不一定要一样。下面用单个字符表示游戏地图的声明是完全合法的:

char map[12][20];

3.6.3  多维数组的索引

程序接下来做的是显示井字棋游戏的棋盘。但是在深入其细节之前,先介绍索引单个数组元素的方法。为数组的每一维提供一个值可以索引多维数组中的单个元素。在把数组中的空格替换成X时就使用了这种方法:

board[1][0] = 'X';

上面的代码将字符X赋给元素board[1][0](原本是' ')。这步操作之后,程序以之前同样的方式显示了井字棋游戏的棋盘。

for (int i = 0; i < ROWS; ++i)

{

for (int j = 0; j < COLUMNS; ++j)

{

cout << board[i][j];

}

cout << endl;

}

通过一对嵌套for循环,程序遍历了整个二维数组,并显示字符元素,形成了井字棋游戏的棋盘。

读书导航