Variabili
Cos’è una variabile?
Section titled “Cos’è una variabile?”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.
Dichiarare una variabile
Section titled “Dichiarare una variabile”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 una variabile
Section titled “Inizializzare una variabile”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.
Cambiare il valore
Section titled “Cambiare il valore”Puoi cambiare il contenuto di una variabile in qualsiasi momento con l’operatore =:
int x = 5;cout << x; // stampa 5
x = 10; // cambiamo il valorecout << x; // stampa 10
x = x + 3; // usiamo il valore corrente per calcolarne uno nuovocout << x; // stampa 13Dichiarare più variabili insieme
Section titled “Dichiarare più variabili insieme”Puoi dichiarare più variabili dello stesso tipo in una riga sola:
int a, b, c; // tre variabili intere non inizializzateint x = 1, y = 2, z = 3; // tre variabili con valori diversiLe regole per i nomi
Section titled “Le regole per i nomi”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:
etaeEtasono variabili diverse
// Nomi validiint eta;double altezza_media;string nomeUtente;int x1;
// Nomi non validiint 2x; // inizia con un numero — ERROREint nome utente; // contiene uno spazio — ERROREint int; // è una parola riservata — ERRORELe convenzioni di stile
Section titled “Le convenzioni di stile”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.
Attenzione: variabili non inizializzate
Section titled “Attenzione: variabili non inizializzate”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.
Esempio completo
Section titled “Esempio completo”#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: AliceEtà: 16Altezza: 1.65 mHa la patente: falseEtà aggiornata: 17