Heim > Artikel > Backend-Entwicklung > Wie initialisiere ich Arrays in Member-Initialisierungslisten in C?
Initialisierungsliste für Array-Mitglieder
Das bereitgestellte Code-Snippet kann aufgrund eines Versuchs, ein Array in einer Mitgliedsinitialisierungsliste mit zu initialisieren, nicht kompiliert werden die folgende Syntax:
`
C() : arr({1,2,3}) <br>{}<br>// wird auch nicht kompiliert<br>C() : arr{1,2,3} <br>{}`
Das liegt daran, dass Arrays in C 03 nur mit dem Zuweisungsoperator initialisiert werden können, z.B. int arr[3] = {1,3,4}.
Lösungen
Verwenden einer Struktur:
Der bereitgestellte Code kann Dies kann behoben werden, indem das Array mit einer Struktur umschlossen und im Konstruktor wie folgt initialisiert wird:
`
int arr[3];<br> ArrayWrapper() : arr{1,2, 3} {}<br>};<br>`
Verwenden der C 11-Listeninitialisierung:
In C 11 können Sie die Listeninitialisierung zum Initialisieren verwenden Arrays in einer Mitgliedsinitialisiererliste:
`
int arr[3];
ArrayWrapper() : arr{1, 2, 3} {}
};
< ;/pre>`Standardkonformität:
Das Verhalten wird im C 03-Standard nicht explizit angesprochen, ist aber eine Folge der Regel, dass die Aggregatinitialisierung erforderlich ist Verwenden Sie den Zuweisungsoperator.
C 11 Klarstellung:
C 11 erlaubt explizit die Initialisierung von Arrays in Mitgliedsinitialisiererlisten mithilfe der Listeninitialisierung.Das obige ist der detaillierte Inhalt vonWie initialisiere ich Arrays in Member-Initialisierungslisten in C?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!