Heim >Backend-Entwicklung >C++ >Werden C-Strukturmitglieder automatisch mit Null initialisiert?

Werden C-Strukturmitglieder automatisch mit Null initialisiert?

DDD
DDDOriginal
2024-12-05 04:36:10229Durchsuche

Are C   Struct Members Automatically Zero-Initialized?

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:

  • Wertinitialisierung ({}): Initialisiert alle Mitglieder auf ihre Standardwerte, z. B. 0 für numerische Typen.
Snapshot s = {}; // All members set to 0
  • Standardkonstruktor: Wenn die Struktur einen Standardkonstruktor hat Bei der Member-Initialisierung wird es für die implizite Initialisierung verwendet.
struct Snapshot {
    int x = 0;
    double y = 0.0;
};

Snapshot s; // x = 0, y = 0.0
  • Konstruktor mit Member-Initialisierung: Eine benutzerdefinierte Initialisierung kann mithilfe von Konstruktoren durchgeführt werden.
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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn