Ominide 7993 punti

Tipo di dato array


La dichiarazione di un array è: <tipo> <nome> [<espressione>];

L’espressione deve essere intera e positiva. La dimensione non può essere espressa da un const int ed è preferibile esprimere la lunghezza tramite una macro (se un numero compare più volte, questo è chiamato magic number, cattivo stile di programmazione).
La dichiarazione di un array è già una definizione, poichè alloca spazio in memoria.
Gli elementi di un array sono disposti in memoria in locazioni successive, ogni elemento è indicizzato da un numero, si inizia da 0 e il massimo è N-1. Se il loro contenuto non è inizializzato, il loro valore non è definito.
Per accedere ad un valore è necessario specificare l’indice. Se viene indicato un valore indice esterno a 0 e N-1, si verificherà buffer overflow.
Per inizializzare un array si usa: <tipo> <nome> = {n0, n1, n2,…}, in cui i valori non inizializzati valgono automaticamente 0. Non si può inizializzare un array facendo senza specificare alcun valore all’interno delle {}. Se vengono specificati valori in più, quelli in eccesso sono ignorati. È possibile evitare di specificare la lunghezza di un array, se quando esso viene dichiarato viene anche inizializzato, quindi la lunghezza dipenderà dai valori specificati, o anche se l’array è dichiarato extern. Un array può essere inizializzato solo al momento della sua dichiarazione, non in seguito.
Un array può essere definito con più di una dimensione, quindi array multidimensionali.
<tipo> <nome> [<dimensione1>] [<dimensione2>]… [<dimensioneN>];
Anche gli array multidimensionali vengono salvati in memoria sequenzialmente, la prima riga e seguita dalla seconda e così via. Per inizializzare un array multidimensionale, si opera: ={{a,b,c}, {d,e,f}}.
Se le parentesi interne vengono omesse gli elementi sono inizializzati in ordine di come sono scritti, ma è meglio evitare. Per stampare i valori di un array multidimensionale è necessario utilizzare più indici diversi e più livelli di annidamento.
È possibile omettere solo la prima dimensione se l’array viene subito inizializzato.
Hai bisogno di aiuto in Informatica?
Trova il tuo insegnante su Skuola.net | Ripetizioni
Potrebbe Interessarti
×
Registrati via email