Programmazione C · 4 min read · Nov 19, 2025
Linux C Programming Tutorial Parte 24 - Array multidimensionali

Se stai seguendo questa serie di tutorial di programmazione C, sarai a conoscenza del concetto di array. Per rinfrescare rapidamente, gli array vengono utilizzati per memorizzare più valori dello stesso tipo in uno spazio di archiviazione continuo.
Array multidimensionali in C
Ad esempio, il seguente è un array di interi capace di memorizzare 5 numeri.
int arr[5]Qualsiasi valore memorizzato in un array può essere facilmente accessibile utilizzando il nome dell’array e il corrispondente valore dell’indice. Poiché gli indici iniziano da 0, diciamo che se vuoi accedere al secondo elemento in un array, puoi farlo nel seguente modo:
arr[1]Il seguente programma accetta 5 interi dall’utente come input, li memorizza in un array e poi li restituisce all’utente.
#include
int main()
{
int arr[5],i;
printf("Inserisci 5 valori interi\n");
for(i=0;i<5;i++)
scanf("%d",&(arr[i]));
printf("Hai inserito i seguenti valori:\n");
for(i=0;i<5;i++)
printf("%d\n",arr[i]);
return 0;
} Ora, questo tipo di array è conosciuto come un array monodimensionale. Sì, ciò significa che esistono anche array multidimensionali - array bidimensionali, array tridimensionali e così via. Ad esempio, il seguente è un array bidimensionale:
int arr[2][3]Puoi visualizzare questo array come una tabella 2-D di numeri con 2 righe e 3 colonne - qualcosa di simile al seguente:
x x x
x x x Quindi ci sono un totale di 6 elementi che questo array può contenere. Vale la pena menzionare che il numero totale di elementi che un array può contenere può essere facilmente calcolato moltiplicando gli indici nella dichiarazione dell’array. Ad esempio, nel caso di ‘arr’, la capacità dell’array può essere calcolata facendo 2x3, che è uguale a 6.
Passando alla parte di inizializzazione, un array 2-D come ‘arr’ può essere inizializzato nel seguente modo:
int arr [2][3] = {1,2,3,4,5,6}Poiché questa inizializzazione rende difficile visualizzare questi valori in un array 2-D, c’è un altro modo (leggi: migliore) che puoi optare. Eccolo:
int arr [2][3] = { {1,2,3}, {4,5,6} };Quindi ora è facile visualizzare che i numeri 1,2,3 sono in una riga, mentre 4,5,6 sono nell’altra. Ecco:
1 2 3
4 5 6Per quanto riguarda come gestire un array 2-D in C, il seguente è un piccolo programma che accetta questi 6 valori dall’utente, li memorizza in un array 2-D ‘arr’ e poi infine li restituisce all’utente:
#include
int main()
{
int arr[2][3],i,j;
printf("Stai per inserire valori per un array 2x3\n");
for(i=0;i<2;i++)
{
for(j=0;j<3;j++)
{
printf("\n Inserisci il valore da memorizzare nella riga %d e nella colonna %d :: ",i,j);
scanf("%d",&arr[i][j]);
}
}
printf("\n Hai inserito i seguenti valori:\n");
for(i=0;i<2;i++)
{
for(j=0;j<3;j++)
{
printf("\n Riga %d e colonna %d = %d\n",i,j,arr[i][j]);
}
}
return 0;
} Ecco l’output:
Stai per inserire valori per un array 2x3
Inserisci il valore da memorizzare nella riga 0 e nella colonna 0 :: 1
Inserisci il valore da memorizzare nella riga 0 e nella colonna 1 :: 2
Inserisci il valore da memorizzare nella riga 0 e nella colonna 2 :: 3
Inserisci il valore da memorizzare nella riga 1 e nella colonna 0 :: 4
Inserisci il valore da memorizzare nella riga 1 e nella colonna 1 :: 5
Inserisci il valore da memorizzare nella riga 1 e nella colonna 2 :: 6
Hai inserito i seguenti valori:
Riga 0 e colonna 0 = 1
Riga 0 e colonna 1 = 2
Riga 0 e colonna 2 = 3
Riga 1 e colonna 0 = 4
Riga 1 e colonna 1 = 5
Riga 1 e colonna 2 = 6Quindi queste erano alcune informazioni di base sugli array bidimensionali. E per quanto riguarda gli array 3-D? Bene, sulla stessa linea, puoi definire e inizializzare anche array tridimensionali. Ecco un esempio:
int arr[2][3][4]Quindi come si può visualizzare questo array? Bene, pensa a un mondo tridimensionale (il mondo in cui viviamo) e poi visualizza tre dimensioni perpendicolari l’una all’altra. È così che le tre dimensioni di questo array si adattano.
Con una capacità di 24 elementi (2x3x4), questo array può essere inizializzato nel seguente modo:
int x[2][3][4] =
{
{ {1,2,3,4}, {5,6,7,8}, {9,10,11,12} },
{ {13,14,15,16}, {17,18,19,20}, {21,22,23,24} }
};Ecco un programma C che utilizza un array 3-D:
#include
int main()
{
int arr[2][3][4],i,j,k;
printf("Stai per inserire valori per un array 2x3x4\n");
for(i=0;i<2;i++)
{
for(j=0;j<3;j++)
{
for(k=0;k<4;k++)
{
printf("\n Inserisci il valore da memorizzare in arr[%d][%d][%d] :: ",i,j,k);
scanf("%d",&arr[i][j][k]);
}
}
}
printf("\n Hai inserito i seguenti valori:\n");
for(i=0;i<2;i++)
{
for(j=0;j<3;j++)
{
for(k=0;k<4;k++)
{
printf("\n arr[%d][%d][%d] = %d\n",i,j,k,arr[i][j][k]);
}
}
}
return 0;
} Conclusione
In questo tutorial, abbiamo ampliato la nostra comprensione esistente degli array discutendo il concetto di array multidimensionali. Ti consigliamo di provare gli esempi utilizzati in questo tutorial sul tuo sistema (così come crearne di nuovi) per ottenere una migliore comprensione di come funzionano questi array. In caso di dubbi o domande, lascia un commento qui sotto.
Ricevi i nuovi post nella tua casella di posta.
Nessuno spam. Disiscriviti in qualsiasi momento.