配列の初期化指定子は、中括弧 ({ }) で囲まれた定数式の、 コンマで区切られたリストです。初期化指定子の前には等号 (=) を付けます。 配列内のすべてのエレメントを初期化する必要はありません。配列が部分的に初期化されている場合は、初期化されていないエレメントの値は、該当の型の値 0 となります。 静的ストレージ期間を持つ配列のエレメントについても、同じことが言えます。 (静的ストレージ期間を持つのは、static キーワードを指定して宣言されているすべてのファイル・スコープ変数および関数スコープ変数です。)
static int number[3] = { 5, 7, 2 };
配列 number には、次の値が含まれます。すなわち、number[0] は 5、number[1] は 7、number[2] は 2 です。エレメントの数 (この例では、3) を定義する添え字宣言子の中で式を使用する場合、配列のエレメントの数よ
り多い初期化指定子を使用することはできません。static int number1[3] = { 5, 7 };
number1[0] および number1[1] の値は前の定義
のときと同じですが、number1[2] は 0 です。static int number[3] = { [0] = 5, [2] = 7 };
配列
number には、次のような値が入れられます。すなわち、
number[0] は 5、number[1] は暗黙的に
0 に初期化され、number[2] は 7 です。static int item[ ] = { 1, 2, 3, 4, 5 };
サイズが指定されておらず、5 つの初期化指定子があるので、コンパイラーは item に、初期化された 5 つのエレメントを与えます。ストリング定数を初期化すると、空いている場所がある場合または配列の次元が指定されていない場合は、 NULL 文字 (¥0) をストリングの終わりに入れます。
static char name1[ ] = { 'J', 'a', 'n' };
static char name2[ ] = { "Jan" };
static char name3[4] = "Jan";
以下の定義では、次のエレメントを作成します。
| エレメント | 値 | エレメント | 値 | エレメント | 値 |
|---|---|---|---|---|---|
| name1[0] | J | name2[0] | J | name3[0] | J |
| name1[1] | a | name2[1] | a | name3[1] | a |
| name1[2] | n | name2[2] | n | name3[2] | n |
| name2[3] | ¥0 | name3[3] | ¥0 |
static char name3[3]="Jan";
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
};
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 }
};
static short grid[3] [4] = {8, 6, 4, 1, 9, 3, 1, 1};
grid の初期値は、次のとおりです。| エレメント | 値 | エレメント | 値 |
|---|---|---|---|
| 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 |
static short grid[3] [4] = { [2][0] = 8, [2][1] = 6,
[2][2] = 4, [2][3] = 1 };
grid の初期値は、次のとおりです。| エレメント | 値 | エレメント | 値 |
|---|---|---|---|
| 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 |