Heim > Backend-Entwicklung > C++ > Werden C-Strukturmitglieder standardmäßig auf Null initialisiert?

Werden C-Strukturmitglieder standardmäßig auf Null initialisiert?

Susan Sarandon
Freigeben: 2024-12-15 06:06:12
Original
682 Leute haben es durchsucht

Are C   Struct Members Initialized to Zero by Default?

Werden Mitglieder einer C-Struktur standardmäßig auf 0 initialisiert?

Die Werte nicht initialisierter Mitglieder einer C-Struktur sind nicht garantiert 0. Um diese explizit zu initialisieren Mitglieder, verwenden Sie eine Initialisierungsliste:

struct Snapshot
{
    double x; 
    int y;
};

Snapshot s = {0, 0}; // Explicitly initialize members to 0
Nach dem Login kopieren

Alternativ können Sie die Struktur mit {} initialisieren. Syntax:

Snapshot s = {}; // Value initializes all members to 0
Nach dem Login kopieren

Beachten Sie, dass die Verwendung von {} zur Wertinitialisierung rekursiv funktioniert, auch für verschachtelte Strukturen:

struct Parent { Snapshot s; };
Parent p = {}; // Value initializes both p and p.s to 0
Nach dem Login kopieren

Wenn die Struktur Konstruktoren hat, müssen Sie die Mitglieder darin explizit initialisieren Konstruktoren:

struct Snapshot {
    int x;
    double y;
    Snapshot(): x(0), y(0) { } // Initialize members in the constructor
};
Nach dem Login kopieren

Alternativ können Sie die Standardwertinitialisierungssyntax x(), y() to verwenden Ignorieren Sie den Typ und weisen Sie einen geeigneten Anfangswert zu (0 für int, 0.0 für double usw.):

Snapshot(): x(), y() { } // Value initializes both x and y to 0
Nach dem Login kopieren

Dies kann besonders für Vorlagen nützlich sein.

Das obige ist der detaillierte Inhalt vonWerden C-Strukturmitglieder standardmäßig auf 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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage