Heim  >  Artikel  >  Backend-Entwicklung  >  Wie initialisiere ich Arrays in Member-Initialisierungslisten in C?

Wie initialisiere ich Arrays in Member-Initialisierungslisten in C?

Patricia Arquette
Patricia ArquetteOriginal
2024-11-13 11:52:02619Durchsuche

How to Initialize Arrays in Member Initializer Lists 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!

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