Table of Contents

Attenzione: questa pagina è stata aggiornata , vedere tipi_di_dato_strutturato_array

Array

Il tipo array è un'eredità del linguaggio C. Mentre un tipo come int è detto tipo semplice, in quanto può contenere un solo valore. Un tipo array invece è detto “tipo strutturato”, perché composto da più elementi. In italiano vengono chiamati anche vettori, ma non per questo devono essere confusi con il tipo std::vector.

51.cpp
// questo programma è stato scritto da Fabio
// crea un array, lo inizializza e lo visualizza
#include <iostream>
int main()
{
  int vettore[9]={7,7,7,7,7,7,5,3,1};
  for (int indice=0; indice<9; indice++)
    std::cout << vettore[indice] << ' ' ; //notare la sintassi delle parentesi quadrate
  std::cout << std::endl;
  return 0;
}

I vettori sono utili quando devo gestire grandi quantità di dati dello stesso tipo. Si può accedere, leggere e modificare un singolo elemento del vettore usando l'indice, usando le parentesi quadrate.

Grazie alla presenza dell'indice le operazioni sui vettori possono essere automatizzate, ad esempio, percorrendo l'array usando un'istruzione di iterazione come for.

52.cpp
// questo programma è stato scritto da Fabio
// crea un array, lo inizializza e ne visualizza la somma di tutti gli elementi
#include <iostream>
int main()
{
  int totale=0;
  int vettore[9]={7,7,7,7,7,7,5,3,1};
  for (int indice=0; indice<9; indice++) // l'indice si può dichiarare dentro il for (solo quando serve)
    totale = totale + vettore[indice] ; //notare la sintassi delle parentesi quadrate
  std::cout << totale << std::endl;
  return 0;
}

Rivedere il precedente esempio, immaginando di dover visualizzare e sommare 90 valori interi invece di 9. Come potrebbe essere risolto un problema del genere senza l'uso dei vettori?

Le variabili strutturate di tipo array derivano dal linguaggio C e sono scomode da usare perché, ad esempio, non c'è nessun controllo del superamento della posizione dell'ultimo elemento. Quindi, nel C++, al loro posto, in generale, è consigliabile usare degli oggetti chiamati std::vector

Array e puntatori a....

Si vedrà presto il legame tra questi due argomenti (vedi puntatori_a_qualcosa all'interno dell'argomento principale gestione della memoria )

Array come stringhe di parole

Come è ben noto, in C++ per memorizzare una parola si usa il tipo std::string. In C gli array erano utilizzati anche per contenere una sequenza di caratteri, ma la sequenza deve terminare con il valore \0 (Zero, da non confondere con il valore numerico intero Zero o con il carattere ASCII '0').

Esiste una funzione che converte le variabili C++ std::string in array in stile C.

 
std::string variabileString = "ciao";
char a1[50] = c_str(variabileString);

Esempio in cui viene usata proprio questa funzione: file