配列の初期化
int a[10] = {0}; の意味は?
1. 配列 a の全ての要素を 0 で初期化する
2. 配列 a の最初の要素に 0 を入れる
int a[10] = {1, 2, 3,}; は書き方としてOK?
こたえ int a[10] = {0}; はa[0] に 0 を代入。
残りは配列初期化時の初期値省略の動作定義に従って 0 にする。
なので、正解は2*1
ということなので、 int a[10] = {1}; って書くと a[0] だけ 1 で残りは 0。
int a[10] = {1, 2, 3}; って書くとExcelとかなら次のセルもインクリ続けてくれるけど、Cだと a[3]以降は 0。 後半の問題はOK。結果はちょっと上に書いたものと同じ。 ただしenumだと最後のコンマは文法違反。
きょうびのコンパイラならまず問題なく通るし、ちゃんと動くだろうけど。
古い環境だとダメだったりするかも。 ついでに // の1行コメントも実はC++のもので、Cでは使えません。 ふーん。