09: Array e Matrici (Dichiarazione)

Il linguaggio C consente operare con variabili strutturate, ovvero variabili che al loro interno memorizzano diversi elementi informativi ( è questo il caso di vettori e matrici). Nelle prossime guide tratteremo meglio i vari tipi strutturati, ora invece ci limitiamo a parlare dell’array.

Che cos’è un array?

L’array (o vettore) è una sequenza di celle di memoria consecutive e omogenee (ossia che contiene all’interno tutti dati dello stesso tipo). A tutta la sequenza di celle viene dato un unico identificatore, mentre per distinguere le varie celle si utilizza un indice, ovvero un numero intero maggiore o uguale a zero: l’indice della prima cella ha valore 0, della seconda 1, etc .

 

Come si dichiara un array?

Ad esempio:

#include<stdio.h>
int vettore [10];
int main () //etc

Quello che ci serve è:
• il tipo dell’array (int, char, float, che abbiamo visto nelle guide precedenti), che nel nostro esempio è int;
• un identificatore/nome della variabile array che vogliamo dichiarare ( nel nostro caso “vettore”);
• la dimensione del nostro array, ovvero il numero di celle che deve avere, all’interno delle [ ] (nell’esempio [10]). Badate che iniziando a contare da 0, avremo celle con indice da 0 a 9.

ATTENZIONE: Il campo dimensione deve essere un valore costante perché gli array hanno blocchi di memoria di dimensione prefissata ed il compilatore deve conoscere esattamente quanta memoria allocare, prima che il programma venga eseguito.

Per rendere più maneggevole il codice, solitamente (non è assolutamente obbligatorio) per l’indice si utilizzano delle costanti numeriche (dichiarate attraverso la define) al posto del semplice numero.

Per esempio:

#include<stdio.h>
#define MAX 10
int vettore[MAX];
int main () //etc.

In questo modo se dovrete modificare il codice e cambiare la dimensione dell’ array, basterà modificare la costante in alto nella define.

 

Stringhe

Se parliamo di sequenza di caratteri, l’array viene detto più propriamente stringa. Essa deve necessariamente terminare con il carattere ‘\0’ (carattere terminatore).

La sua dichiarazione sarà del tipo:

#include<stdio.h>
#include<stdlib.h> //vedremo che sarà necessaria questa libreria per le operazioni con le stringhe
char stringa [20];
int main () //etc. 

In questo modo abbiamo dichiarato la variabile “stringa” di tipo char di dimensione 20.

Array Multidimensionali

Un array può avere più di una dimensione. Nel sia bidimensionale, prende il nome di matrice. A differenza dell’ array (semplice), la matrice quindi avrà due indici. Pertanto, se un array è n-dimensionale, avrà n-indici.

Vediamo un esempio di dichiarazione di matrice:

#include<stdio.h>
int matrix[2][2]; 
int main () //etc.

La matrice così dichiarata avrà dimensione 2X2 (=4). Il primo elemento sarà matrix [0][0], il secondo [0][1], il terzo [1][0] e l’utlimo [1][1].

Nelle prossime guide vedremo come si inizializzano gli array e quali sono le principali operzioni che possiamo compiere con questi.
Spero di essere stata chiara nell’esposizione, come al solito se avete dubbi siamo qui per voi! Alla prossima.

Please follow and like us: