Gli array nel linguaggio C: dichiarazione, struttura e sintassi

Un array o vettore è definito come una collezione organizzata di oggetti simili che vengono immagazzinati in maniera contigua all’interno della memoria, dove con oggetti simili si intende un insieme di variabili dello stesso tipo di dato. Per esempio se definiamo un array di tipo int, solamente variabili di tipo int potranno essere immagazzinate all’interno del vettore.

Come già accennato, gli array sono delle collezioni organizzate, ovvero ogni suo elemento è identificato univocamente da un numero chiamato indice che permette di accedere alle posizioni richieste. In particolare se la dimensione dell’array, ovvero il numero massimo di elementi che può contenere, è N, gli indici vanno da 0 ad N-1. Questo è dovuto al fatto che il primo elemento di un array si trova in posizione 0.
Chiaramente grazie agli indici è possibile accedere in modo casuale ai valori di un array.

Nota: gli array sono anche in grado di immagazzinare collezioni di dati più complessi come i puntatori o anche le strutture.

Dichiarazione di un array in C

Per poter dichiarare un array si fa riferimento alle seguente sintassi:



tipo_dato nome_array[dimensione_array];

Possiamo notare che la dichiarazione risulta essere molto simile alla dichiarazione di una qualsiasi variabile, con l’unica differenza che viene definita la dimensione del vettore, ovvero il numero massimo di valori inseribili. Facciamo alcuni esempi di come dichairare un array:



int voti[10]; //array di 10 interi
float temperature[16]; //array di 16 valori con virgola
char nome[50]; //array di caratteri

Inizializzazione di un array in C

Una volta dichiarato un array è possibile inizializzarlo in diversi modi. Il metodo più semplice consiste nell’inizializzarlo durante la fase di dichiarazione, definendo l’elenco dei valori che esso deve contenere. Ad esempio:



int anni[5] = {6, 12, 7, 52, 35};

Con questo tipo di inizializzazione è anche possibile tralasciare la dimensione dell’array:



int anni[] = {6, 12, 7, 52, 35};

Il secondo metodo per inizializzare i vettori in C, è quello di inserire i valori usando gli indici, ricordando che gli indici iniziano da 0 e non da 1, come nel seguente esempio:



anni[0] = 6;
anni[1] = 12;
anni[2] = 7;
anni[3] = 52;
anni[4] = 35;

Nota: è importante inizializzare completamente un array, infatti in ogni posizione è comunque immagazzinato un valore, tipicamente lo 0, ma non è detto. Di seguito viene creato un array di interi di dimensione 5 non inizializzato, se proviamo a stampare il suo contenuto otteniamo ogni volta un valore diverso:



int anni[5];

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


Output: 0 0 -1033523072 21875 -266606960

Esempio di utilizzo di array in C

Nel seguente esempio dichiariamo un array di 5 interi, chiediamo all’utente di riempirlo inserendo i valori da tastiera ed al termine stampiamo a video i valori contenuti nell’array. Per poter eseguire l’esempio in maniera più ordinata ed efficiente, facciamo affidamento sul ciclo for.



#include <stdio.h>

int main(){
    int numeri[5];
    
    for(int i=0; i<5; i++){
        printf("Inserisci un numero: ");
        scanf("%d", &numeri[i]);
    }
    
    printf("Hai inserito i seguenti numeri: ");
    for(int i=0; i<5; i++){
        printf("%d ", numeri[i]);
    }

    return 0;
}

Indice pagine linguaggio C: