Variabili

Le variabili sono identificatori di zone di memoria in cui sono immagazzinati dati.

Tipi
Definizione ed inizializzazione
Array e matrici

Tipi
Il tipo di una variabile descrive il tipo di informazione contenuto nella variabile.
Tipi disponibili (il numero di byte è dipendente dall'architettura)

  Tipo          Bytes    Descrizione 
  char          1        carattere o intero a 8 bits
  short int     2        intero a 16 bits
  int           4        intero a 32 bits
  long  int     4        intero a 32 bits
  float         4        floating-point a 32 bits 
  double        8        floating-point a 64 bits
  long double   12       floating-point a 96 bits
  bool          1        variabile logica (assume due soli valore: true o false)

Definizione di variabile
Ogni variabile presente in un programma C++ deve essere definita prima di essere utilizzata. La definizione di una variabile non implica alcuna inizializzazione (il valore iniziale non è determinato); questa, se necessario, deve essere eseguita esplicitamente.
Definizione di variabili:

  int    i,j;
  char   car;
  double a,b;
  bool   test;
definizione ed inizializzazione
  int    i=10,j=9;
  char   car='a';
  double a=3.0,b=2.0;
  bool   test=false;
Il simbolo = è l' operatore di assegnazione.

Array e matrici
Gli array sono serie di elementi (variabili) dello stesso tipo disposti in memoria consecutivamente in maniera da poter essere accessibili aggiungendo un indice ad un unico nome.
Come ogni altra variabile l'array deve essere definito prima di essere utilizzato:

  tipo nome[n];
n è una costante intera che indica il numero di elementi. L'indice dell'array, che permette di identificare i singoli elementi, va da 0 a n-1. Il primo elemento del vettore è quindi identificato con nome[0].
L'inizializzazione di un array si esegue indicando, dopo l'operatore =, le singole componenti tra parentesi graffe separate da virgole.
  tipo nome[n]={elemento_0,....,elemento_n-1};
Gli array possono avere due componenti (matrici) o più e vengono definiti come:
  tipo nome[n][m];
Ad es. matrice di double:
  double mat[2][3];
Una matrice x[n][m] è rapresentata in memoria con un vettore ad una sola componente composto da, nell'ordine,
  x[0][0] x[0][1] ... x[0][m] x[1][0] x[1][1] ... x[1][m] ... x[n][0] x[n][1] ... x[n][m]
il primo indice è l'indice di riga, il secondo quello di colonna.
L'inizializzazione dei valore deve quindi tenere conto di questa convenzione, as es:
  double mat[2][3]={0.0, 2.0, 3.0, 2.0, 3.0, 1.0};
La prima riga della matrice sarà composta da 0.0 2.0 3.0 la seconda riga da 2.0 3.0 1.0.
Tipicamente l'accesso agli elementi di matrice si realizza con due cicli annidati:
for(int i=0; i<2; ++i) {// i identifica la riga
  for(int j=0; j<3; ++j){// per ogni riga, j identifica l'elemento della riga (la colonna)
    cout << mat[i][j] << endl;
    // mat[i][j]: l'elemento sulla riga i e sulla colonna j
  }
}