Anche in C, come in altri linguaggi di programmazione, vengono utilizzati gli array, ovvero insieme di elementi simili. Ecco una definizione più precisa di array in C e una breve guida al loro uso pratico.
Definizione degli array in C
Un array può essere definito come una "collezione organizzata di oggetti". Analizziamo la definizione e capiremo molte cose, innanzitutto il concetto di "collezione" implica che tali oggetti siano dello stesso tipo, così, prendendo spunto dal mondo reale, potremmo definire un array di mele, che, quindi non può contenere nessun "oggetto pera"; un array in C è una collezione di variabili dello stesso tipo.
"Organizzata" implica che sia possibile identificare univocamente tutti gli oggeti dell'array in modo sistematico; questo in C viene fatto tramite l'uso di indici numerici che, in un array di dimensione N, vanno da 0 ad N-1.
Riprendendo l'esempio della rubrica del cellulare, usato per spiegare le variabili nella lezione 11, si può pensare a quando creiamo un "gruppo suonerie", ad esempio di nome "amici scuola"; tale gruppo può contenere a tutti gli effetti un certo numero di nomi/numeri dei nostri compagni di classe, ecco questo "gruppo" è un array, perchè formato da oggetti dello stesso tipo (nomi/numeri) ed indentificato da un nome (amici scuola) che li accomuna.
Come si dichiara un array
Ma vediamo nel dettaglio come è possibile dichiarare un array:
int myarray[10];
Come si può notare un array viene dichiarato mettendo il nome della variabile (myarray), e ,tra parentesi quadre, la cifra che identifica il numero di elementi dello stesso tipo (int) e quindi la dimensione dell'array.
Nell'esempio, ognuno dei dieci interi viene chiamato elemento dell'array e dieci è la dimensione dell'array. In C, come già detto, ogni elemento viene identificato da un numero, contando da 0 (invece che da 1) ed arrivando ad N (la dimensione, nel nostro esempio uguale a 10) - 1 (quindi arriviamo a 9); per far comprendere meglio il concetto abbiamo creato la seguente immagine che ci riporta ad un paragone con il mondo reale;
In questa immagine l'array viene paragonato ad un palazzo. Pensateci bene, quando diciamo che un palazzo ha 5 piani, in realtà ha sei livelli; cioè il piano terra è il primo livello, il primo piano il secondo, e così via; analogamente succede nell'array, se abbiamo un array di dimensione 6, i suoi indici andranno da 0 a 5 e un elemento richiamato, ad esempio, tramite l'indice 3, è il quarto elemento, questo perché si inizia a contare da 0.
L'analogia assume maggiore importanza, anche per far capire che le variabili dell'array sono dello stesso tipo, così come un array di int può contenere solo int (e non char o float), un palazzo che contiene uffici, in questo esempio, può contenere solo uffici (e non abitazioni).
Torniamo al linguaggio C, e vediamo come è possibile dichiarare array di float o di char:
float float_array[12];
char char_array[7];
Uso pratico degli array
Una volta dichiarato un array è possibile assegnare il valore alla posizione corrispondente, richiamandola tramite l'indice, ad esempio se volessi inserire il valore 87.43 nell'array di float alla quinta posizione, basta scrivere:
float_array[4] = 87.43
Mentre se volessi utilizzare il valore contenuto nella terza posizione dell'array e memorizzarlo in un'altra variabile, dovrei fare:
float myvar = float_array[2];