Edizione didattica italiana
Array nel linguaggio C
Esplora indici e matrici mantenendo espliciti lunghezze e limiti.

Un array contiene elementi consecutivi dello stesso tipo. Per N elementi, gli indici validi vanno da 0 a N - 1. C non controlla automaticamente gli indici: un accesso fuori dai limiti ha comportamento indefinito.
Inizializza i dati prima di leggerli, scegli il limite corretto del ciclo e verifica gli input. Quando passi un array a una funzione, passa anche il numero di elementi validi.
Una matrice C è un array di array memorizzato per righe. La funzione deve conoscere abbastanza dimensioni per calcolare gli indirizzi. Una matrice e un array di puntatori non hanno la stessa rappresentazione.
Dove è disponibile l’array completo, sizeof array / sizeof array[0] calcola il numero di elementi. Non funziona su un parametro puntatore. Prova un solo elemento e il primo e ultimo indice ammessi.
Codice sorgente
#include <stdio.h>
int main(void) {
int scores[5] = {70, 85, 90, 65, 100};
int grid[2][3] = {
{1, 2, 3},
{4, 5, 6}
};
int n = sizeof(scores) / sizeof(scores[0]);
int sum = 0;
for (int i = 0; i < n; i++) {
sum += scores[i];
}
printf("Elements: %d\n", n);
printf("Sum: %d\n", sum);
printf("Average: %.1f\n", (double)sum / n);
printf("2D array:\n");
for (int r = 0; r < 2; r++) {
for (int c = 0; c < 3; c++) {
printf("%d ", grid[r][c]);
}
printf("\n");
}
return 0;
}
Apri nel compilatoreRisultato atteso
Elements: 5 Sum: 410 Average: 82.0 2D array: 1 2 3 4 5 6
Domande frequenti
Perché il codice e alcuni risultati restano in inglese?
Parole chiave C, identificatori, commenti del programma e output attesi restano quelli originali per preservare codice eseguibile e test coerenti. Spiegazioni e istruzioni sono tradotte.