vale1411
Genius
2 min. di lettura
Vota

Concetti Chiave

  • Un array è dichiarato usando le parentesi quadre e la sua dichiarazione alloca spazio in memoria.
  • Gli elementi di un array sono indicizzati a partire da 0 fino a N-1, e non inizializzati hanno valore indefinito.
  • Per accedere a un elemento si usa l'indice; un indice fuori range causa buffer overflow.
  • Un array può essere inizializzato con valori nella dichiarazione; quelli non inizializzati valgono 0.
  • Gli array possono essere multidimensionali, memorizzati sequenzialmente, e richiedono più indici per l'accesso.

Tipo di dato 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.
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.
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. Come si dichiara e inizializza un array in modo corretto?
  2. Un array si dichiara con le parentesi quadre "[]", e si inizializza con "= {n0, n1, n2,…}". È importante specificare i valori all'interno delle parentesi graffe, poiché i valori non inizializzati valgono automaticamente 0. Non si può inizializzare un array senza specificare alcun valore.

  3. Cosa succede se si accede a un indice fuori dai limiti di un array?
  4. Se si accede a un indice esterno ai limiti 0 e N-1 di un array, si verifica un buffer overflow, che può causare comportamenti imprevisti o errori nel programma.

  5. È possibile definire array multidimensionali e come vengono gestiti in memoria?
  6. Sì, è possibile definire array multidimensionali, che vengono salvati in memoria sequenzialmente, riga per riga. Per inizializzarli, si utilizza la sintassi ={{a,b,c}, {d,e,f}}. È importante utilizzare più indici e livelli di annidamento per accedere correttamente ai loro valori.

Domande e risposte

Hai bisogno di aiuto?
Chiedi alla community