配列の初期化

配列のすべての要素を0で初期化するには

int a[10] = { 0 };
int a[3][10] = { 0 };


のように書きます。

では次のようにするとすべて1で初期化されるでしょうか?

実験1
int a[3][10] = { 1 };

実行結果
1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

どうやら違うみたいです。では続けて以下はどうなるでしょうか?

実験2
int a[3][10] = { 0, 1, 2, 3, 4, 5 };

実行結果
0 1 2 3 4 5 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0


実験3
int a[3][10] = { { 0, 1 }, { 2, 3, 4, 5 } };

実行結果
0 1 0 0 0 0 0 0 0 0 2 3 4 5 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

つまり、指定されない要素は0が設定されます。

文字列の初期化も同様です。

実験4
char *str[5] = { "apple", "orange" };

実行結果

apple
orange
(null)
(null)
(null)

C > 配列 | comments (0) | trackbacks (0)

Comments

Comment Form

icons:

Trackbacks