Variabili in C++
Cos’è una variabile?
Sezione intitolata “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 nomi associati ai valori che il programma conserva e può aggiornare durante l’esecuzione.
Dichiarare una variabile
Sezione intitolata “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, una variabile locale non inizializzata contiene un valore indeterminato.
Inizializzare una variabile
Sezione intitolata “Inizializzare una variabile”Inizializzare significa assegnare il primo valore mentre dichiari la variabile:
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 consente controlli più severi sulle conversioni e può evitare perdita di dati.
Cambiare il valore
Sezione intitolata “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
Sezione intitolata “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
Sezione intitolata “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; // ERRORE: inizia con un numeroint nome utente; // ERRORE: contiene uno spazioint int; // ERRORE: è una parola riservataLe convenzioni di stile
Sezione intitolata “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
Sezione intitolata “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 può produrre risultati imprevedibili.
Regola pratica: inizializza sempre le variabili quando le dichiari.
Esempio completo
Sezione intitolata “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