Le variabili locali in c plus plus
Una variabile locale nel linguaggio C++ è una variabile temporanea che ha una visibilità limitata al blocco di codice che la contiene.
Ti faccio un esempio pratico.
In questo programma la variabile z è una variabile locale.
- #include <iostream>
- using namespace std;
- int main() {
- int x=1;
- if (x==1) {
- int z=5;
- cout << "z = " << z << endl;
- }
- return 0;
- }
La variabile z si trova dentro il blocco di codice if (x==1) { ... }
All'interno del blocco la variabile z è visibile.
L'output del programma è
z = 5
Una volta terminata l'esecuzione del blocco che la contiene, la variabile locale z viene cancellata.
Pertanto, se tu provassi a visualizzarla al di fuori del blocco
- #include <iostream>
- using namespace std;
- int main() {
- int x=1;
- if (x==1) {
- int z=5;
- cout << "z = " << z << endl;
- }
- cout << "z = " << z << endl;
- return 0;
- }
riceveresti in output un messaggio di errore
error: ‘z’ was not declared in this scope
Puoi dichiarare una variabile locale anche usando lo stesso nome di una variabile globale.
In questo caso la variabile locale 'nasconde' la variabile globale all'interno del blocco.
Una volta terminata l'esecuzione del blocco, torna visibile la variabile globale.
Ad esempio. In questo programma la variabile y=1 è una variabile globale.
#include <iostream>
using namespace std;
int main()
{
int y=1;
if (y==1) {
int y=2;
cout << "y = " << y << endl;
}
cout << "y' = " << y << endl;
return 0;
}
All'interno del blocco di codice if (y==1) { } viene dichiarata una variabile locale y=2.
La variabile locale y=2 nasconde temporaneamente la variabile globale y=1.
Il programma stampa a video
y = 2
Al termine dell'esecuzione del blocco di codice il programma libera la memoria dalle variabile locali.
Torna a essere visibile la variabile globale y=1.
Quindi il programma stampa a video
y' = 1