Skip to content

Variabili

Un programma deve ricordare delle informazioni mentre lavora: il nome dell’utente, il punteggio di un gioco, il risultato di un calcolo.

Le variabili sono i contenitori in cui il programma memorizza queste informazioni. Pensa a una variabile come a una scatola con un’etichetta: l’etichetta è il nome della variabile, il contenuto della scatola è il suo valore.

In C++ devi dichiarare una variabile prima di usarla. La dichiarazione specifica due cose: il tipo (che genere di valore conterrà) e il nome (come si chiama):

int eta; // una scatola per numeri interi, chiamata "eta"
double altezza; // una scatola per numeri decimali, chiamata "altezza"
char iniziale; // una scatola per un singolo carattere, chiamata "iniziale"

Dopo la dichiarazione, la scatola esiste in memoria, ma è vuota (o meglio: contiene un valore casuale imprevedibile).

Inizializzare significa mettere subito un valore nella scatola al momento in cui la crei:

int eta = 16;
double altezza = 1.65;
char iniziale = 'A';
bool maggiorenne = false;

In C++ moderno puoi anche usare le parentesi graffe per inizializzare:

int x{10}; // equivalente a int x = 10;
double pi{3.14};

Questa forma è preferita dai programmatori più esperti perché il compilatore la controlla più attentamente.

Puoi cambiare il contenuto di una variabile in qualsiasi momento con l’operatore =:

int x = 5;
cout << x; // stampa 5
x = 10; // cambiamo il valore
cout << x; // stampa 10
x = x + 3; // usiamo il valore corrente per calcolarne uno nuovo
cout << x; // stampa 13

Puoi dichiarare più variabili dello stesso tipo in una riga sola:

int a, b, c; // tre variabili intere non inizializzate
int x = 1, y = 2, z = 3; // tre variabili con valori diversi

I nomi delle variabili devono seguire queste regole:

  • Devono iniziare con una lettera (a-z, A-Z) o un underscore _
  • Possono contenere lettere, numeri e underscore
  • Non possono contenere spazi o simboli speciali
  • Non possono essere parole riservate del linguaggio (int, if, return, ecc.)
  • Le maiuscole contano: eta e Eta sono variabili diverse
// Nomi validi
int eta;
double altezza_media;
string nomeUtente;
int x1;
// Nomi non validi
int 2x; // inizia con un numero — ERRORE
int nome utente; // contiene uno spazio — ERRORE
int int; // è una parola riservata — ERRORE

Non ci sono regole fisse sullo stile, ma due convenzioni sono molto diffuse:

  • camelCase: nomeUtente, etaMinima, numeroDiStudenti
  • snake_case: nome_utente, eta_minima, numero_di_studenti

Scegli una e usala in modo coerente in tutto il progetto.

In C++, una variabile dichiarata ma non inizializzata contiene un valore casuale (quello che c’era in quella zona di memoria prima):

int x;
cout << x; // stampa un numero imprevedibile — comportamento non definito!

In Python questo causa un errore chiaro. In C++ il compilatore potrebbe non avvertire, e il programma si comporta in modo strano.

Regola pratica: inizializza sempre le variabili quando le dichiari.

#include <iostream>
#include <string>
using namespace std;
int main() {
// Dichiariamo e inizializziamo quattro variabili di tipo diverso
string nome = "Alice";
int eta = 16;
double altezza = 1.65;
bool haPatente = false;
// Stampiamo i valori
cout << "Nome: " << nome << endl;
cout << "Età: " << eta << endl;
cout << "Altezza: " << altezza << " m" << endl;
cout << "Ha la patente: " << boolalpha << haPatente << endl;
// Modifichiamo il valore di eta
eta = 17;
cout << "Età aggiornata: " << eta << endl;
return 0;
}

Output:

Nome: Alice
Età: 16
Altezza: 1.65 m
Ha la patente: false
Età aggiornata: 17