Concetti Chiave

  • La dichiarazione di un array avviene tramite "[];" e deve essere espressa in modo intero e positivo, preferibilmente utilizzando macro per evitare "magic number".
  • Un array è già definito al momento della dichiarazione, poiché alloca spazio in memoria e gli elementi sono indicizzati da 0 a N-1.
  • Per accedere a un valore di un array, è necessario specificare un indice compreso tra 0 e N-1 per evitare errori di buffer overflow.
  • Un array può essere inizializzato solo al momento della sua dichiarazione con la sintassi "= {n0, n1, n2,…}", dove i valori non specificati assumeranno il valore 0.
  • Gli array multidimensionali sono definiti con più dimensioni e vengono inizializzati con la sintassi "={{a,b,c}, {d,e,f}}", memorizzati in modo sequenziale in memoria.

Dichiarazione e definizione di array

La dichiarazione di un array è: [];

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.

Inizializzazione e accesso agli array

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: = {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.

Array multidimensionali

Un array può essere definito con più di una dimensione, quindi array multidimensionali.

[] []… [];

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.

Domande da interrogazione

  1. Qual è la corretta dichiarazione di un array e quali sono le sue caratteristiche principali?
  2. La dichiarazione di un array è rappresentata da "[];", e deve avere una dimensione intera e positiva. La dichiarazione è anche una definizione, poiché alloca spazio in memoria e gli elementi sono indicizzati da 0 a N-1. Se non inizializzati, i valori degli elementi non sono definiti.

  3. Come si inizializza un array e quali sono le regole da seguire?
  4. Un array si inizializza utilizzando la sintassi "= {n0, n1, n2,…}", dove i valori non specificati vengono automaticamente impostati a 0. Non è possibile inizializzare un array senza specificare valori all'interno delle parentesi graffe, e la lunghezza può essere omessa se l'array è dichiarato e inizializzato contemporaneamente.

  5. Cosa sono gli array multidimensionali e come si inizializzano?
  6. Gli array multidimensionali sono array definiti con più di una dimensione e sono memorizzati in modo sequenziale in memoria. Si inizializzano con la sintassi "= {{a,b,c}, {d,e,f}}". È consigliabile non omettere le parentesi interne per evitare confusione, e per stampare i valori è necessario utilizzare più indici e livelli di annidamento.

Domande e risposte

Hai bisogno di aiuto?
Chiedi alla community