2016-03-25 36 views

risposta

12

C99 consente di specificare gli elementi dell'array in qualsiasi ordine (questo sembra essere chiamato "Inizializzatori designati" se lo si sta cercando). Quindi questo costrutto sta assegnando 7 al secondo elemento di c.

Questa espressione è equivalente a char c[2] = {0, 7}; che non risparmia spazio per un inizializzatore così breve ma è molto utile per gli array sparsi più grandi.

Vai a questa pagina per ulteriori informazioni: https://gcc.gnu.org/onlinedocs/gcc/Designated-Inits.html

+2

E 'equivalente a 'char c [2] = {0 , 7}; 'qui, ma l'inizializzatore designato è molto conveniente nei casi di lunghe matrici e strutture. –

+0

Questo è un altro modo semplice per visualizzarlo. Aggiunto alla risposta. –

2

Il suo significato sarebbe

char c[2]={ 0, 7 } 

o si può dire

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

Perché 'NULL', è un puntatore *** *** ***? Si vuole usare '0' o' '\ 0'' per inizializzare un 'char'. – alk

+0

oh sry intendevo 0x0 il suo nt NULL – Mukesh

+0

Il secondo esempio non è un inizializzatore ma istruzioni di runtime. –