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

Werden C-Strukturmitglieder automatisch mit Null initialisiert?

DDD
Freigeben: 2024-12-05 04:36:10
Original
191 Leute haben es durchsucht

Are C   Struct Members Automatically Zero-Initialized?

Wertinitialisierung von Strukturmitgliedern in C

Betrachten Sie die folgende Struktur:

struct Snapshot
{
    double x; 
    int y;
};
Nach dem Login kopieren

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};
Nach dem Login kopieren

Andere Initialisierung Optionen:

  • Wertinitialisierung ({}): Initialisiert alle Mitglieder auf ihre Standardwerte, z. B. 0 für numerische Typen.
Snapshot s = {}; // All members set to 0
Nach dem Login kopieren
  • 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
Nach dem Login kopieren
  • 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
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage