Initialization of multidimensional arrays
You can initialize a multidimensional array using any of the following
techniques:
- Listing the values of all elements you want to initialize, in
the order that the compiler assigns the values. The compiler assigns
values by increasing the subscript of the last dimension fastest.
This form of a multidimensional array initialization looks like a
one-dimensional array initialization. The following definition completely
initializes the array
month_days:static month_days[2][12] = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31, 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 }; - Using braces to group the values of the elements you want initialized.
You can put braces around each element, or around any nesting level
of elements. The following definition contains two elements in the
first dimension (you can consider these elements as rows). The initialization
contains braces around each of these two elements:
static int month_days[2][12] = { { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 }, { 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 } }; - Using nested braces to initialize dimensions and elements in a
dimension selectively. In the following example, only the first eight
elements of the array
gridare explicitly initialized. The remaining four elements that are not explicitly initialized are automatically initialized to zero.
The initial values ofstatic short grid[3][4] = {8, 6, 4, 1, 9, 3, 1, 1};gridare:Element Value Element Value grid[0][0]8 grid[1][2]1 grid[0][1]6 grid[1][3]1 grid[0][2]4 grid[2][0]0 grid[0][3]1 grid[2][1]0 grid[1][0]9 grid[2][2]0 grid[1][1]3 grid[2][3]0
Using designated initializers. The following example uses designated initializers to explicitly initialize only the last four elements of the array. The first eight elements that are not explicitly initialized are automatically initialized to zero.
Beginning of C only.
The initial values ofstatic short grid[3][4] = { [2][0] = 8, [2][1] = 6, [2][2] = 4, [2][3] = 1 };gridare:Element Value Element Value grid[0][0]0 grid[1][2]0 grid[0][1]0 grid[1][3]0 grid[0][2]0 grid[2][0]8 grid[0][3]0 grid[2][1]6 grid[1][0]0 grid[2][2]4 grid[1][1]0 grid[2][3]1
End of C only.
Related information