INIZIALIZZAZIONE DELLE VARIABILI

In C è possibile definire il valore iniziale delle variabili al momento della loro dichiarazione, con dichiarazioni aventi forma
TYPE IDENTIFIER = EXPRESSION ;
dove il tipo di EXPRESSION coincide con TYPE.

Questo costrutto è semplicemente un'abbreviazione, infatti la dichiarazione sopra corrisponde a

TYPE IDENTIFIER ;
IDENTIFIER = EXPRESSION ;

Solamente nel caso di variabili di tipo array/record l'inizializzazione non può essere rimpiazzata da una successiva assegnazione. Infatti, in tali casi nell'inizializzazione è possibile usare anche costanti di tipo array/record.
Nel caso degli array la forma di tali costanti è l'elenco degli elementi in ordine, racchiusi tra graffe e separati da virgole.
Se gli elementi elencati sono meno di quelli dell'array, essi saranno assegnate alle prime componenti, le rimanenti componenti rimarranno non inizializzate.
Similmente per i record.
Per i tipi "stringa", cioè array di caratteri, i valori iniziali possono essere rappresentati come sequenze di caratteri racchiuse tra doppi apici ("); in tal caso ricordare comunque che verrà aggiunto implicitamente alla fine il carattere nullo (\0, quello con codice 0).

/*esempi di inizializzazioni*/

char spazio = ' ';
int vet[5] = { 4, 1, 2, 3 , 4 };
float lista[10] = {3.333}; /*solo la prima componente e' inizializzata*/

int matrix[2][3] = { {1,1,1}, {2,2,2} };
/*una matrice e' un array i cui elementi sono a loro volta array*/

char str[10] ="abc";

struct RRR { int A, B;
             float C[3];
             char D[5];
             };
 
RRR X = {2, 4, {1.1, 2.2, 3.3 }, "OK"};

ESERCIZIO

  1. Modificare i programmi visti precedentemente utilizzando, quando possibile, il costrutto di inizializzazione delle variabili.