*
* 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'!
*/
