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};
Antwort:
Unter Verwendung der in der Frage genannten Syntax
int array[100] = {-1};
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);
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!