Gli array
Un array è una struttura di dati costituita da dati correlati e dello stesso tipo. Essi vengono chiamati anche vettori.
Array monodimensionali
Si tratta di un insieme di variabili dello stesso tipo e accomunate dallo stesso nome. Ciò che distingue un elemento dell’array da un altro è l’indice, ovvero il numero che indica la sua posizione all’interno dell’array.
Per far riferimento a una locazione di memoria o a un particolare elemento dell’array, bisogna specificare il nome dell’array e il numero di posizione dell’elemento nell’array.
Dichiarare un array
Sintassi:
Tipo nome_array[quantità];
In ogni array bisogna specificare il tipo di ogni elemento e il numero di elementi che esso richiede, in modo che il computer possa riservare la giusta quantità di memoria.
Esempi:
- Riserva 12 elementi di spazio per l’array intero c:
int c[12]; - Riserva 100 elementi per l’array intero b e 27 elementi per l’array intero x:
int b[100], x[27];
Attenzione: Il nome di ogni array può contenere solo lettere, cifre e sottolineature e non può iniziare con una cifra. Il numero di posizione racchiuso tra le parentesi quadre è chiamato indice dell’elemento e deve essere un intero o un’espressione intera.
È possibile definire più di un array in una volta, ma è preferibile definirne solo uno per riga in modo da poter aggiungere dei commenti che spieghino lo scopo di ciascuno di essi.
Dichiarare e inizializzare
int mio_array[5] = {32, 27, 64, 18, 95};
È possibile anche omettere la dimensione dell’array, in questo modo la dimensione sarà equivalente al numero di elementi inizializzati.
int n[] = {1, 2, 3, 4, 5};
Cambiare valore variabile
Adesso il decimo valore dell’array vale 8.
int mio_array[10] = 8;
Inserire un valore da tastiera
È possibile inserire un valore attraverso l’utilizzo della tastiera e dell’istruzione scanf. Esempio:
printf("Inserisci il valore del primo elemento: ");
scanf("%d", &mio_array[0]);
Il primo elemento di ogni array è l’elemento zero (cioè quello con numero di posizione 0).
Leggere e stampare con for
int mio_array[10];
int i;
for(i=0; i<10; i++) {
printf("Elemento n. %d: ", i);
scanf("%d", &mio_array[i]);
}
//stampare
for(i=0; i<10; i++)
printf("Elemento n. %d: %d\n", i, mio_array[i]);
return 0;
Nella figura sottostante vi è un array di interi chiamato c contenente 12 elementi; per riferirsi ad uno qualunque di questi elementi bisogna fornire il nome dell’array seguito dal numero di posizione dell’elemento racchiuso tra parentesi quadre.
Operazioni con gli elementi di un array
- Assegna 1000 all’elemento dell’array c[2]:
c[2] += 1000; - Per stampare la somma di tre elementi dell’array c:
printf("%d", c[0] + c[1] + c[2]); - Per dividere il valore dell’elemento c[6] per 2 e assegnare il risultato alla variabile x:
x = c[6] / 2;
Array di caratteri
Gli array possono contenere dati di ogni tipo, come per esempio caratteri. Gli array di caratteri hanno diverse caratteristiche. Per esempio, un array di caratteri può essere inizializzato usando una stringa letterale.
char string1[] = "first";
La dimensione di un array composto da una stringa dipende quindi dalla lunghezza di quest’ultima. In questo caso la stringa "first" contiene cinque caratteri più un carattere speciale di terminazione di stringa chiamato carattere nullo. Quindi la string1 contiene in realtà sei elementi e la costante che rappresenta il carattere nullo.