Video: inizializzazione vettori e matrici Programmazione C lez#13 2024
In C ++, una variabile locale non inizia la vita con un valore valido, nemmeno il valore 0. Detto in altri termini, una variabile locale contiene elementi inutili finché non si memorizza qualcosa in esso. Gli array dichiarati localmente sono gli stessi - ogni elemento contiene rifiuti finché non gli assegni effettivamente qualcosa.
È necessario inizializzare le variabili locali quando le si dichiara. Questa regola è ancora più vera per gli array. È troppo facile accedere a elementi di array non inizializzati pensando che siano valori validi.
"Variabile locale" si riferisce alle normali variabili dichiarate all'interno di una funzione. I puristi di C ++ in realtà chiamano queste variabili automatiche per distinguerle dalle variabili statiche.
Fortunatamente, un piccolo array può essere inizializzato nel momento in cui viene dichiarato con un elenco di inizializzatore. Il seguente frammento di codice mostra come ciò è fatto:
float floatArray [5] = {0. 0, 1. 0, 2. 0, 3. 0, 4. 0};
Inizializza floatArray [0] a 0, floatArray [1] a 1. 0, floatArray [2] a 2. 0 e così via.
C ++ riempie la lista di inizializzazione con 0 se il numero di elementi nella lista è inferiore alla dimensione dell'array. Di fatto, è possibile utilizzare un elenco di inizializzazione vuoto per inizializzare un array su 0:
int nArray [128] = {}; // inizializza l'array su tutti gli 0
Il numero di costanti di inizializzazione può determinare la dimensione dell'array. Ad esempio, potresti aver stabilito che floatArray ha cinque elementi semplicemente contando i valori all'interno delle parentesi. Anche il C ++ può contare (ecco almeno una cosa che il C ++ può fare da sé).
float floatArray [] = {0. 0, 1. 0, 2. 0, 3. 0, 4. 0};