Die Magie hinter Array verstehen[100] = {0}; Initialisierung
Wenn Entwickler auf das C/C-Code-Snippet-Array[100] = {0} stoßen, fragen sich Entwickler möglicherweise, wie der Compiler alle Array-Elemente mühelos auf Null initialisiert.
Initialisierungsmechanismus des Compilers
Dieses Verhalten ist keine arkane Magie, sondern ein klar definierter Aspekt des C und C-Spezifikationen.
In C
Gemäß Abschnitt 6.7.8.21 der C-Spezifikation werden nicht initialisierte Elemente innerhalb eines Arrays wie folgt initialisiert:
Dies gilt rekursiv für verschachtelte Arrays und Strukturen.
In C
Abschnitt 8.5. 1.7 der C-Spezifikation besagt, dass nicht initialisierte Elemente innerhalb eines Arrays aggregiert initialisiert werden. Die Aggregatinitialisierung initialisiert die Elementwerte auf ihre Standardwerte, die für Zeichen Null sind.
Leere Initialisierungsliste
In C können Sie auch ein leeres Initialisierungslistenarray verwenden [100] = {}; um die Aggregatinitialisierung für alle Array-Elemente auszulösen.
Compiler-Assembly-Ausgabe
Der vom Compiler generierte spezifische Assembly-Code kann je nach spezifischer Implementierung variieren. In der Regel ist es jedoch erforderlich, einen Teil des Arrays zu initialisieren und die initialisierten Werte in die verbleibenden Elemente zu kopieren.
Das obige ist der detaillierte Inhalt vonWie initialisiert „array[100] = {0};' ein gesamtes Array in C/C auf Null?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!