Heim > Backend-Entwicklung > C++ > Warum werden einige Array-Elemente auf Null initialisiert, wenn ich in C einen Standardwert zuweise?

Warum werden einige Array-Elemente auf Null initialisiert, wenn ich in C einen Standardwert zuweise?

DDD
Freigeben: 2024-12-27 20:30:11
Original
680 Leute haben es durchsucht

Why are Some Array Elements Initialized to Zero When I Assign a Default Value in C  ?

Initialisierung von Array-Elementen mit Standardwert in C

Frage:

Warum funktioniert die Initialisierung? Ein Array mit einem Wert ungleich Null mit der folgenden Syntax führt zu einer Inkonsistenz Werte?

int array[100] = {-1};
Nach dem Login kopieren
Nach dem Login kopieren

Antwort:

Unter Verwendung der in der Frage genannten Syntax

int array[100] = {-1};
Nach dem Login kopieren
Nach dem Login kopieren

initialisiert das erste Element mit dem angegebenen Wert (-1) und setzt die restlichen Elemente standardmäßig auf 0. Um alle Elemente auf -1 zu initialisieren, kann man die Funktion std::fill_n von :

std::fill_n(array, 100, -1);
Nach dem Login kopieren

Für C-Code verwenden, ist eine manuelle Schleife erforderlich, um alle Elemente explizit zu initialisieren. Compiler-Erweiterungen oder durch die Implementierung definierte Verhaltensweisen stellen möglicherweise Verknüpfungen bereit, es wird jedoch aus Gründen der Portabilität nicht empfohlen, sich darauf zu verlassen.

Bezüglich der Initialisierungsgeschwindigkeit:

Die Standardinitialisierungsmethode ist dies im Allgemeinen nicht schneller als die explizite Initialisierung jedes Elements mithilfe einer Schleife. Allerdings ist der Leistungsunterschied normalerweise vernachlässigbar, es sei denn, es handelt sich um große Arrays.

Das obige ist der detaillierte Inhalt vonWarum werden einige Array-Elemente auf Null initialisiert, wenn ich in C einen Standardwert zuweise?. 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