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

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

Susan Sarandon
Susan SarandonOriginal
2024-12-15 06:06:12686Durchsuche

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

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

Snapshot s = {}; // Value initializes all members to 0

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

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
};

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

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!

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