Programmazione C · 3 min read · Feb 14, 2026
Linux C Programming Tutorial Parte 7: Array

Quindi abbiamo già discusso il concetto di variabili nella programmazione C (qui e qui). Per rinfrescare rapidamente, una variabile è qualcosa che può contenere un valore di un tipo particolare - potrebbe essere un intero, un carattere o anche un punto mobile. Tuttavia, c’è una limitazione delle variabili: possono contenere solo un singolo valore in un dato momento.
Questo significa che se vuoi contenere diversi valori, dovrai gestire un numero uguale di variabili. Ad esempio, se vuoi che un programma accetti 10 valori interi dall’utente e poi li stampi, allora puoi scriverlo in questo modo:
#include
int main()
{
int a=0,b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;
printf("Inserisci 10 valori interi\n");
scanf("%d",&a);
scanf("%d",&b);
scanf("%d",&c);
scanf("%d",&d);
scanf("%d",&e);
scanf("%d",&f);
scanf("%d",&g);
scanf("%d",&h);
scanf("%d",&i);
scanf("%d",&j);
printf("Hai inserito i seguenti valori:\n");
printf("%d\n",a);
printf("%d\n",b);
printf("%d\n",c);
printf("%d\n",d);
printf("%d\n",e);
printf("%d\n",f);
printf("%d\n",g);
printf("%d\n",h);
printf("%d\n",i);
printf("%d\n",j);
return 0;
} O in questo modo:
#include
int main()
{
int a=0,b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;
printf("Inserisci 10 valori interi\n");
scanf("%d %d %d %d %d %d %d %d %d %d",&a,&b,&c,&d,&e,&f,&g,&h,&i,&j);
printf("Hai inserito i seguenti valori:\n");
printf("%d %d %d %d %d %d %d %d %d %d\n",a,b,c,d,e,f,g,h,i,j);
return 0;
} Il secondo approccio potrebbe essere leggermente migliore se lo confronti in termini di righe di codice scritte, ma c’è ancora un modo migliore, ed è utilizzare un array di interi.
Sì, se c’è la necessità di contenere più valori dello stesso tipo, allora dovresti optare per un array. Ecco come si definisce un array di interi capace di contenere 10 valori:
int arr[10]Quindi qui, ‘int’ si riferisce al tipo di valori che l’array ‘arr’ memorizzerà. Il numero 10 tra parentesi quadre indica che la capacità di ‘arr’ è di 10 valori. Ora, ecco un pezzo di codice che utilizza questo array:
#include
int main()
{
int arr[10],i;
printf("Inserisci 10 valori interi\n");
for(i=0;i<10;i++)
scanf("%d",&(arr[i]));
printf("Hai inserito i seguenti valori:\n");
for(i=0;i<10;i++)
printf("%d\n",arr[i]);
return 0;
} Nota che abbiamo già discusso le funzioni scanf e printf in uno dei nostri tutorial precedenti, quindi puoi fare riferimento a quegli articoli nel caso tu voglia saperne di più su di esse.
Tornando agli array, avrai osservato che il ciclo ‘for’ nel codice sopra inizia con i=0. Questo perché gli indici degli array (il numero tra parentesi quadre) iniziano sempre da zero. Quindi qui, nel nostro caso, arr[0] si riferisce al primo valore inserito dall’utente, arr[1] si riferisce al secondo valore, e così via fino a arr[9] che si riferisce al 10° valore.
Vale anche la pena menzionare che puoi facilmente accedere all’indirizzo di memoria di ciascun valore memorizzato nell’array. Questo può essere fatto utilizzando il nome dell’array, che è ‘arr’ in questo caso. Quindi se usi solo ‘arr’ nel codice, allora non è altro che l’indirizzo di memoria del primo elemento.
Allo stesso modo, se vuoi accedere all’indirizzo di memoria del secondo elemento, usa semplicemente ‘arr+1’. Per il terzo elemento, usa ‘arr+2’, e così via. Il seguente pezzo di codice e il suo output dovrebbero darti un’idea migliore.
#include
int main()
{
int arr[10],i;
printf("L'indirizzo dei primi e secondi valori è: %u %u\n", arr, arr+1);
return 0;
} Ecco l’output:
L'indirizzo dei primi e secondi valori è: 2904035888 2904035892Come puoi vedere, c’è una differenza di 4 byte in questi indirizzi - questo perché un valore intero occupa 4 byte nel mio sistema.
Qui, in questo tutorial, abbiamo discusso le basi degli array. Nota che abbiamo solo dato esempio di un array di interi. Puoi avere array di altri tipi, come caratteri. Prova gli esempi che abbiamo usato in questo tutorial e facci sapere nella sezione commenti qui sotto se hai qualche dubbio o domanda.
Ricevi i nuovi post nella tua casella di posta.
Nessuno spam. Disiscriviti in qualsiasi momento.