C & C++ FAQ
|
C | C++ | 配列の初期化方法を教えてください。 |
と宣言すると、要素a[0], a[1], a[2], a[3], a[4]が順に1, 2, 3, 4, 5で初期化されます。int a[5] = {1, 2, 3, 4, 5};
ただし、初期化子を与える配列の宣言では、初期化子が与えられていない要素は0で初期化されるという規則がありますので、int a[5] = {0, 0, 0, 0, 0}; /* すべての要素を0で初期化 */
と宣言すると、初期化子が与えられていないa[1]以降の要素も0で初期化されます。int a[10] = {0}; /* すべての要素を0で初期化 */
と宣言すると、初期化子の数に基づいて、その要素数は3となります。すなわち、以下の宣言と同じです。int a[] = {1, 2, 5};
なお、初期化子の数が、配列の要素数を超えるとエラーになります。int a[3] = {1, 2, 5};
int a[3] = {1, 2, 3, 5}; /* エラー:初期化子が多すぎる */
標準C | §6.5.7 | Initialization |
標準C99 | §6.7.8 | |
標準C++ | §8.5 | Initializers |