Wertinitialisierung von Strukturmitgliedern in C
Betrachten Sie die folgende Struktur:
struct Snapshot { double x; int y; };
Wenn die Struktur deklariert ist Ohne Initialisierung werden seine Mitglieder automatisch auf gesetzt 0?
Antwort:
Nein, Mitglieder werden nicht automatisch auf 0 initialisiert. Um sie auf 0 zu setzen, ist eine explizite Initialisierung erforderlich:
Snapshot s = {0,0};
Andere Initialisierung Optionen:
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
Hinweis: Die Konstruktorinitialisierung ist nicht möglich, wenn in der Struktur aggregierte Initialisierungslisten vorhanden sind Erklärung.
Das obige ist der detaillierte Inhalt vonWerden C-Strukturmitglieder automatisch mit Null initialisiert?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!