Heim  >  Artikel  >  Backend-Entwicklung  >  Wie funktioniert die Standardinitialisierung mit „std::array“ in C 11?

Wie funktioniert die Standardinitialisierung mit „std::array“ in C 11?

Patricia Arquette
Patricia ArquetteOriginal
2024-11-01 06:13:31334Durchsuche

How Does Default Initialization Work with `std::array` in C  11?

Standardinitialisierung in std::array

Standardinitialisierung ist die Initialisierung, die auftritt, wenn kein expliziter Initialisierer bereitgestellt wird. Mit C 11 std::array ist die Syntax std::array X; garantiert, dass alle Elemente des Arrays standardmäßig initialisiert werden.

Gemäß dem C 11-Standard (§8.5/11) wird jedes Objekt ohne expliziten Initialisierer standardmäßig initialisiert. Dazu gehören std::array-Objekte und herkömmliche Arrays im C-Stil. Insbesondere hat die Standardinitialisierung keine Auswirkung auf Nicht-Klassen- und Nicht-Array-Typen, sodass deren Wert unbestimmt bleibt.

Wertinitialisierung für alle Arrays

Während die Standardinitialisierung Nicht-Typen belässt -Klasse, Nicht-Array-Typen unbestimmt, Wertinitialisierung setzt Elemente auf ihre Standardwerte. In C 11 wird die Wertinitialisierung erreicht, indem für jedes Array-Element ein leerer Initialisierer bereitgestellt wird:

int plain_int{};
int c_style_array[13]{};
std::array<int, 13> cxx_style_array{};

Dadurch werden alle Elemente des Arrays wertinitialisiert, was dazu führt, dass plain_int und alle Array-Elemente auf Null initialisiert werden.

Das obige ist der detaillierte Inhalt vonWie funktioniert die Standardinitialisierung mit „std::array“ in C 11?. 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