C の構造体メンバーの値の初期化
次の構造体について考えます。
struct Snapshot { double x; int y; };
構造体が宣言されている場合初期化せずに、そのメンバーは自動的に次のように設定されますか? 0?
答え:
いいえ、メンバーは自動的に 0 に初期化されません。メンバーを 0 に設定するには、明示的な初期化が必要です:
Snapshot s = {0,0};
その他の初期化オプション:
Snapshot s = {}; // All members set to 0
struct Snapshot { int x = 0; double y = 0.0; }; Snapshot s; // x = 0, y = 0.0
struct Snapshot { Snapshot(int x, double y) : x(x), y(y) { } }; Snapshot s(0, 0.0); // x = 0, y = 0.0
注: struct 宣言に集約初期化子リストが存在する場合、コンストラクターの初期化はできません。
以上がC 構造体のメンバーは自動的にゼロ初期化されますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。