Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial
  • Lezione 22 di 47
  • livello principiante
Indice lezioni

Gli array e i cicli For

Come scorrere i valori all'interno di un array attraverso i cicli FOR
Come scorrere i valori all'interno di un array attraverso i cicli FOR
Link copiato negli appunti

Esiste una forte relazione tra l'uso degli array e di cicli For nella programmazione in C, per il fatto che un ciclo permette di contare per un certo numero di volte. In questo modo utilizzando una variabile che incrementi (o decrementi) il suo valore ad ogni ciclo, si possono scorrere le posizioni dell'array in maniera semplice, con un notevole risparmio di codice scritto.

Per fare un esempio, assumiamo di avere un array di int di 100 elementi e di voler stampare a video il contenuto di tutte le posizioni dell'array; vista la particolare natura dell'array non inizieremo a contare da 1, ma da 0, fino ad arrivare a novantanove (quindi cento elementi effettivi). Utilizzeremo il comando di stampa sull'array con l'indice, incrementato ogni volta, preso dal ciclo for.

In codice:

int int_array[100];
int i;
for (i=0; i<100; i++)
{
printf ("%d", int_array[i]);
}

For in C e gli array

In questo caso la variabile di controllo "i" del ciclo for viene usata come indice per l'array; da far notare che, a livello visivo, si capisce subito che si cicla di cento elementi, perché la condizione posta è quella di avere "i<100", iniziando a contare da zero, quindi, si esegue il ciclo fino al novantanovesimo elemento, che è minore di cento; alla successiva iterazione, prima di eseguire il corpo del ciclo, "i" viene incrementata di uno e quindi vale cento, valore che non verifica più la condizione (100 non è minore di 100, semmai è uguale) e che fa terminare il ciclo for; l'intervallo contato (da 0 a 99) è utile per rappresentare tutti e cento gli elementi dell'array, visto che, come spiegato prima, in un array si contano gli elementi partendo dallo zero.

In questo modo potrebbe essere abbastanza semplice anche inizializzare tutti i valori dell'array; supponiamo di voler dare ad ogni elemento dell'array il valore uguale alla sua posizione, con la seguente soluzione si risparmia un sacco di codice:

int int_array[100];
int i;
for (i=0; i<100; i++)
{
int_array[i] = i;
}

Inizializzare l'array

Naturalmente un array può essere inizializzato anche passando direttamente i valori, ad esempio, come in questo esempio:

int numeri[] = { 7, 23, 4, 94, 120 };

in cui si crea un array di 5 elementi, ed è per questo che tra parentesi quadre non si mette la dimensione, in quanto ricavata dal numero di elementi compresi tra le parentesi graffe.

Array di caratteri

Prendiamo come altro esempio gli array di caratteri, che hanno una particolarità, possono essere inizializzati, senza essere divisi da virgole; ora proponiamo due forme equivalenti di inizializzazione, di cui la prima sicuramente più pratica:

char caratteri[] = "Hello World!";

char caratteri[] = { 'H', 'e', 'l', 'l', 'o', ' ', 'W', 'o', 'r', 'l', 'd', '!' };

Una particolarità che riguarda il linguaggio C, è che non esiste un vero e proprio "tipo stringa", quello che in altri linguaggi viene chiamato "String" (si pensi al C++ o al Java). In C le stringhe vengono rappresentate tramite array di caratteri, quindi bisogna stare attenti alle operazioni che vi si compiono e ricordarsi che hanno comunque il vantaggio di godere di tutti pregi degli array, tra cui quello di poter scorrere a piacimento nella posizione della stringa stessa. Ogni array di caratteri termina con la sequenza di "escape"


Ti consigliamo anche