Array

Un array, noto anche come vettore é una struttura di dati che contiene un insieme di variabili definite elementi.

Dichiarazione di un array

La dichiarazione di un array avviene attraverso la sintassi seguente:

[data_type] identificatore[numero di elementi];

Un ulteriore modo ampiamente utilizzato per la dichiarazione di un array é il seguente:

//utilizzo #define per sostituire “SIZE” con la dimensione dell’array

#define SIZE 10
int main(void){
    int a [SIZE] //dichiaro l’array inserendo nel subscript il valore “SIZE”
}

Al momento della dichiarazione viene riservata una congrua quantità di spazio in memoria dimensionata al contenimento dei dati. Il valore iniziale degli elementi dell’array prima che questi vengano inizializzati può dipendere dai dati preesistenti nelle stesse posizioni di memoria. Non deve quindi stupire se un array non inizializzata contenga già dei dati.

Inizializzazione di un array

Un array può essere anche inizializzata contestualmente alla sua dichiarazione. La sintassi é la seguente:

identificatore[numero_di_elementi} = {valore 0, valore 1, valore 2, …..valore N};

A questo proposito é necessario ricordare alcune regole:

  • Se il numero di elementi inizializzati è inferiore al numero di elementi dell’array, i restanti elementi vengono inizializzati a 0;
  • Se il numero degli elementi eccede la dimensione dell’array il compilatore restituisce un warning;
  • Se si cerca di inizializzare un array vuota si avrà allo stesso modo un warning;
  • E’ possibile omettere il [numero_di_elementi] se é presente una lista di inizializzatori;

L’assegnazione dei valori all’indice dell’array avviene in modo sequenziale, ma a partire dagli ultimi standard del linguaggio C è possibile stabilire in modo specifico quali elementi inizializzare secondo la loro posizione, detta anche indice.

identificatore[numero_di_elementi] = {[indice] = value, ….,[indice_n] = value};

Inizializzazione mista

E’ interessante esaminare il comportamento di un inizializzazione di tipo misto, perché spiega il comportamento del compilatore in casi simili. Come anzidetto l’inizializzazione di un array avviene in modo sequenziale, ma se impostiamo anche l’indice ad uno dei valori da inserire, l’inizializzazione sequenziale riprenderà dall’indice successivo a quello inserito, fino al termine della lunghezza dell’array, lasciando gli elementi “saltati” a 0. Se viene inizializzato due volte lo stesso elemento, questo assume il valore della seconda inizializzazione, che sovrascrive al prima.

Accesso all’array (subscripting)

L’accesso ad un array avviene con la seguente sintassi:

//Scrittura
identificatore[indice] = valore;
//Lettura
variabile = identificatore[indice];

E’ bene notare che il valore di indice può anche non essere direttamente indicato ma può essere il risultato di operazione tra variabili.

Luca Scandroglio

Sono un consulente tecnico informatico, un web designer e uno sviluppatore italiano. Aiuto le aziende a dotarsi degli strumenti tecnologici e digitali per superare le sfide del mercato di oggi.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.