* * Ora vedremo che come indice si puo' usare anche una variabile. * Ad esempio, per indicare il terzo elemento dell'array prova: * * int pippo,pluto; * Definisco 2 variabili intere * int prova[10]; * Definisco un array con 10 elementi * * pippo=2; * Pippo ora vale 2 * * pluto=prova[pippo]; * Questo e' equivalente a pluto=prova[2] * * * Tra le parentesi quadre, anziche' mettere il 2, abbiamo messo una * variabile (intera) di valore 2, e cio' e' equivalente. * Questo fatto puo' tornarci comodo spesso. * Ad esempio, potremmo riempire con un solo loop FOR un intero array, * assegnando a tutti i suoi elementi il valore 5: * * for (i=0; i<99; i++) prova[i]=5; * * Questo e' un loop for in cui usiamo la variabile i come contatore, che * quindi ad ogni loop aumenta di 1 (partendo da zero) a causa di i++. * Il prova[i]=5 viene eseguito 100 volte, con i che vale da 0 a 99, in * modo da scrivere il 5 nei primi 100 elementi dell'array prova. * * Inoltre e' possibile inizializzare un array, ossia assegnare un valore * ai suoi elementi, al momento della dichiarazione, in modo analogo alle * variabili inizializzate alla dichiarazione. * Il formato generale di inizializzazione e' questo: * * tipo nome[dimensione] = {lista argomenti}; * * lista argomenti = I valori da dare agli elementi dell'array, separati * da una virgola. Il primo valore corrisponde al primo elemento, e cosi' * di seguito. Si possono mettere tutti gli elementi o solo una parte, ad * esempio possiamo inizializzare solo 5 elementi di un array di 10 * elementi, in tal caso i restanti 5 saranno azzerati. * Esempio: * * int provina[5]={10,20,30,40,50}; * * In questo caso abbiamo inizializzato tutti gil elementi dell'array. * Attenzione al fatto che se non si inizializza un array, ne' ci si * scrive dentro, i suoi contenuti non sono degli zeri, bensi' valori a * caso presenti in quel punto della memoria! * Ora mettiamo in pratica le ultime 2 cose trattate. */ #include <stdio.h> /* Includiamo la libreria standard */ /* Funzione principale e inizio del programma */ int main(void) /* Funzione principale, eseguita per prima */ { /* Inizio della funzione main() */ int provina[4]; /* Un array con 4 elementi interi, che * quindi avra' indici da 0 a 3 */ int provetta[4]={10,20,30,40}; /* Array con tutti gli elementi * gia' inizializzati */ int pippo; /* Definiamo 1 variabile intera */ /* Con questo loop inizializiamo l'array provina con i valori 0,1,2,3 */ for (pippo=0; pippo<4; pippo++) provina[pippo]=pippo; printf("\nPrimo elemento provetta: %d", provetta[0]); printf("\nSecondo elemento provetta: %d", provetta[1]); printf("\nTerzo elemento provetta: %d", provetta[2]); printf("\nQuarto elemento provetta: %d", provetta[3]); printf("\nPrimo elemento provina: %d", provina[0]); printf("\nSecondo elemento provina: %d", provina[1]); printf("\nTerzo elemento provina: %d", provina[2]); printf("\nQuarto elemento provina: %d\n", provina[3]); return(0); /* la funzione main restituisce uno 0 intero */ } /* Fine della funzione main() */ /* Una nota: se provate a togliere il loop FOR che inizializza l'array * provina (ossia ci scrive dei valori), leggendo in tale array non si * troveranno degli zeri, bensi' leggerete dei numeri "a caso" che erano * in memoria in quella zona da prima. * Se per caso la zona di memoria fosse azzerata, ci trovereste degli * zeri, ma non si puo' certo "sperare" cio'! */