Inizializzazione di stringhe

È possibile inizializzare una matrice di caratteri (o carattere "wide") con un valore letterale stringa (o valore letterale stringa "wide"). Ad esempio:

char code[ ] = "abc";

inizializza code come matrice di caratteri di quattro elementi. Il quarto elemento è il carattere null, che termina tutti i valori letterali stringa.

Un elenco di identificatori può essere lungo solo come il numero di identificatori da inizializzare. Se si specifica una matrice con dimensione minore della stringa, i caratteri aggiuntivi vengono ignorati. Ad esempio, la seguente dichiarazione inizializza code come matrice di caratteri con tre elementi:

char code[3] = "abcd";

Solo i primi tre caratteri dell'inizializzatore vengono assegnati a code. Il carattere d e il carattere di terminazione null della stringa vengono rimossi. Si noti che in questo modo viene creata una stringa non terminata (ovvero una stringa senza un valore 0 che ne contrassegni la fine) e viene generato un messaggio di diagnostica che indica questa condizione.

La dichiarazione

char s[] = "abc", t[3] = "abc";

è identica a

char s[]  = {'a', 'b', 'c', '\0'},
     t[3] = {'a', 'b', 'c' };

Se la stringa è minore delle dimensioni della matrice specificate, gli elementi rimanenti della matrice verranno inizializzati sul valore 0.

Specifico di Microsoft

In Microsoft C i valori letterali stringa possono essere lunghi fino a 2048 byte.

END Microsoft Specific

Vedi anche

Inizializzazione