7
Cでの配列の初期化に関する混乱
C言語で、次のように配列を初期化する場合: int a[5] = {1,2}; 明示的に初期化されていない配列のすべての要素は、ゼロで暗黙的に初期化されます。 しかし、私がこのような配列を初期化すると: int a[5]={a[2]=1}; printf("%d %d %d %d %d\n", a[0], a[1],a[2], a[3], a[4]); 出力: 1 0 1 0 0 わかりません、なぜ代わりにa[0]印刷1するの0ですか?未定義の動作ですか? 注:この質問はインタビューで尋ねられました。