1
?それはゴミですか?それともゼロですか?私のコードでは、のために0
が得られましたが、私のTAはそれがゴミになると私に言ったのですか?私は章の配列を宣言した場合Cの構造体自動初期化値、配列の初期化
はまた、:
Chapter chapters[30];
それが0
/NULL
大切な要素と30の構造体で満たされるでしょうか?あるいは、ガーベージ要素で初期化されますか?
?それはゴミですか?それともゼロですか?私のコードでは、のために0
が得られましたが、私のTAはそれがゴミになると私に言ったのですか?私は章の配列を宣言した場合Cの構造体自動初期化値、配列の初期化
はまた、:
Chapter chapters[30];
それが0
/NULL
大切な要素と30の構造体で満たされるでしょうか?あるいは、ガーベージ要素で初期化されますか?
によって異なります。明示的に初期化しない限り、変数が静的(またはスレッド)記憶域期間を持つ場合、
は、メンバーが0
または同等に初期化されます。場合
引用C11
、章では、その値は不定 あります。静的またはスレッド記憶期間を持つオブジェクトが、明示的に で初期化されていない場合は、
- ポインタ型の場合はNULLポインタに初期化されます。
- 算術型の場合は、(正または符号なし)ゼロに初期化されます。
- 集合体の場合、すべてのメンバーはこれらの規則に従って(再帰的に) で初期化され、パディングはゼロビットに初期化されます。
- 共用体の場合、最初の名前付きメンバはこれらの規則に従って(再帰的に)初期化され、パディングはゼロビットに初期化されます。