Heim >Backend-Entwicklung >C++ >Wie initialisiert man alle Array-Elemente effizient auf einen Standardwert in C?

Wie initialisiert man alle Array-Elemente effizient auf einen Standardwert in C?

DDD
DDDOriginal
2024-12-24 16:03:14276Durchsuche

How to Efficiently Initialize All Array Elements to a Default Value in C  ?

Initialisierung aller Array-Elemente auf einen Standardwert

In C können Sie alle Elemente eines Arrays mit dem auf einen Standardwert initialisieren Folgende Syntax:

int array[100] = {0};

Dadurch werden alle Elemente des Arrays auf 0 gesetzt. Beim Versuch kann es jedoch zu unerwartetem Verhalten kommen um alle Elemente auf einen Wert ungleich Null zu initialisieren, z. B. -1.

Alle Elemente auf einen Wert ungleich Null setzen

Die Syntax:

int array[100] = {-1};

weist den Compiler an, nur das erste Element auf -1 zu setzen, während die übrigen Elemente standardmäßig auf 0 gesetzt werden. Um alle Elemente auf -1 zu initialisieren, müssen Sie kann Methoden verwenden wie:

  • std::fill_n (C-Standardbibliothek):
std::fill_n(array, 100, -1);
  • Loop- Basierende Initialisierung (Portable C):
for (int i = 0; i < 100; i++) {
  array[i] = -1;
}

Leistungsüberlegungen

Ob die Standardinitialisierung schneller ist als ein schleifenbasierter Ansatz, hängt von Faktoren wie dem Compiler und dem Ziel ab Plattform. Im Allgemeinen können moderne Compiler die schleifenbasierte Initialisierung durch die Verwendung plattformspezifischer Eigenfunktionen optimieren. Daher ist der Leistungsunterschied oft vernachlässigbar.

Das obige ist der detaillierte Inhalt vonWie initialisiert man alle Array-Elemente effizient auf einen Standardwert in C?. 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