



Studia grazie alle numerose risorse presenti su Docsity
Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium
Prepara i tuoi esami
Studia grazie alle numerose risorse presenti su Docsity
Prepara i tuoi esami con i documenti condivisi da studenti come te su Docsity
Trova i documenti specifici per gli esami della tua università
Preparati con lezioni e prove svolte basate sui programmi universitari!
Rispondi a reali domande d’esame e scopri la tua preparazione
Riassumi i tuoi documenti, fagli domande, convertili in quiz e mappe concettuali
Studia con prove svolte, tesine e consigli utili
Togliti ogni dubbio leggendo le risposte alle domande fatte da altri studenti come te
Esplora i documenti più scaricati per gli argomenti di studio più popolari
Ottieni i punti per scaricare
Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium
Cosa sono gli array: definizione, come si dichiara un array, uso pratico con relativi esempi; Gli array e i cicli for: inizializzare l'array, array di caratteri, array multidimensionali e relativi esempi.
Tipologia: Dispense
1 / 6
Questa pagina non è visibile nell’anteprima
Non perderti parti importanti!




Anche in C , come in altri linguaggi di programmazione, vengono utilizzati gli array, ovvero insieme di elementi simili. Ecco una definizione più precisa di array in C e una breve guida al loro uso pratico.
Definizione degli array in C Un array può essere definito come una “collezione organizzata di oggetti”. Analizziamo la definizione e capiremo molte cose, innanzitutto il concetto di “collezione” implica che tali oggetti siano dello stesso tipo, così, prendendo spunto dal mondo reale, potremmo definire un array di mele, che, quindi non può contenere nessun “oggetto pera”; un array in C è una collezione di variabili dello stesso tipo.
“Organizzata” implica che sia possibile identificare univocamente tutti gli oggetti dell’array in modo sistematico; questo in C viene fatto tramite l’uso di indici numerici che, in un array di dimensione N, vanno da 0 ad N-1. Riprendendo l’esempio della rubrica del cellulare, si può pensare a quando creiamo un “gruppo suonerie”, ad esempio di nome “amici scuola”; tale gruppo può contenere a tutti gli effetti un certo numero di nomi/numeri dei nostri compagni di classe, ecco questo “gruppo” è un array, perchè formato da oggetti dello stesso tipo (nomi/numeri) ed indentificato da un nome (amici scuola) che li accomuna.
Come si dichiara un array Ma vediamo nel dettaglio come è possibile dichiarare un array:
int myarray[10];
Come si può notare un array viene dichiarato mettendo il nome della variabile (myarray), e ,tra parentesi quadre, la cifra che identifica il numero di elementi dello stesso tipo (int) e quindi la dimensione dell’array.
Nell’esempio, ognuno dei dieci interi viene chiamato elemento dell’array e dieci è la dimensione dell’array. In C, come già detto, ogni elemento viene identificato da un numero, contando da 0 (invece che da 1) ed arrivando ad N (la dimensione, nel nostro esempio uguale a 10) – 1 (quindi arriviamo a 9); per far comprendere meglio il concetto abbiamo creato la seguente immagine che ci riporta ad un paragone con il mondo reale;
In questa immagine l’array viene paragonato ad un palazzo. Pensateci bene, quando diciamo che un palazzo ha 5 piani, in realtà ha sei livelli; cioè il piano terra è il primo livello, il primo piano il secondo, e così via; analogamente succede nell’array, se abbiamo un array di dimensione 6, i suoi indici andranno da 0 a 5 e un elemento richiamato, ad esempio, tramite
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]); }
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 ( 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; }
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.
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’, ‘!’ };
Ovviamente, nel linguaggio C , la potenza degli array risiede anche nel fatto che si possono usare degli array multidimensionali. Come? in pratica ogni elemento contenuto da un array è a sua volta un array; in questo modo si possono rappresentare facilmente tabelle e matrici, o qualunque altra cosa che richieda un rappresentazione anche superiore, si pensi a programmi di grafica tridimensionale, dove un array cubico può essere usato per disegnare i punti all’interno dello spazio tridimensionale creato,