2016-03-25 9 views

Antwort

12

C99 können Sie die Elemente des Arrays in beliebiger Reihenfolge angeben (dies scheint "Designed Initialisers" genannt zu werden, wenn Sie danach suchen). Dieses Konstrukt ordnet 7 dem zweiten Element von c zu.

Dieser Ausdruck entspricht char c[2] = {0, 7};, der nicht Platz für solch einen kurzen Initialisierer spart, aber ist sehr hilfreich für größere Sparse-Arrays.

Siehe diese Seite für weitere Informationen: https://gcc.gnu.org/onlinedocs/gcc/Designated-Inits.html

+2

Es ist gleichbedeutend mit 'char c [2] = {0 , 7}; 'hier aber bezeichnet Initialisierer ist in den Fällen lange Arrays und Strukturen sehr bequem. –

+0

Das ist eine andere einfache Möglichkeit, es zu visualisieren. Zu der Antwort hinzugefügt. –

2

Seine Bedeutung

char c[2]={ 0, 7 } 

würde OR kann man sagen,

char c[2]; 
c[0]=0; 
c[1]=7; 
+0

Warum 'NULL', das ist ein Null *** Zeiger *** Konstante ?! Sie möchten '0' oder' \ '\' verwenden, um ein 'char' zu initialisieren. – alk

+0

oh sry ich meinte 0x0 es ist NULL – Mukesh

+0

Ihr zweites Beispiel ist kein Initialisierer, sondern Laufzeit-Anweisungen. –