C++ Notes: 2-Dimensional Arrays
Data that is in rows and columns is usually stored in 2-dimensional arrays.
Declaring of 2-dimensional arrays
Two-dimensional arrays are declared by specifying the number of rows then the
number of columns.
int a[30][10]; // declares an int array of 30 rows and 10 columns.
char ticTacToeBoard[3][3]; // three rows and three columns of chars.
Initializing 2-dimensional arrays
Unless specified, all initial values of arrays are garbage. You can
specify initial values by enclosing each row in curly braces like this:
char ticTacToeBoard[3][3] = {{'x', 'x', 'o'},
{'o', 'o', 'x'},
{'x', 'o', ' '}
};
If some elements are omitted in the initialization list,
they are set to zero.
Subscripting 2-dimensional arrays
Write subscripts as x[row][col]. Passing over
all elements of a two-dimensional array is usually done with two nested
for loops.
// clear the board
for (int row=0; row<3; row++) {
for (int col=0; col<3; col++) {
ticTacToeBoard[row][col] = ' ';
}
}
Passing 2-dimensional arrays as parameters
C++ doesn't care about bounds, but it needs to compute
the memory address given the subscripts (see below).
To do this it needs to know the row width (number of columns).
Therefore formal 2-dimensional array parameters must be declared
with the row size, altho the number of rows may be omitted. For example,
void clearBoard(ticTacToeBoard[][3]) {
. . .
}
Related Pages
Arrays of Arrays