Ce înseamnă variabilă globală și locală în C++?
Probabil că ați auzit de variabile globale sau de variabile locale când ați lucrat cu funcții (subprograme) — ce înseamnă ele defapt?
Ce este o varibailă locală?
O variabilă este locală dacă este declarată în cadrul unei funcții. Astfel, această variabilă nu poate fi accesată decât în cadrul aceleiași funcții.
Ce este o variabilă globală?
O variabilă este globală dacă este declarată în afara oricărei funcții. Astfel, variabila poate fi accesată de către orice funcție a programului.
Exemple
Să analizăm următorul program în C++:
#include <iostream>
using namespace std;
int main()
{
int n, s = 0;
cin >> n;
for(int i = 1; i <= n; i++) {
s = s + i;
}
cout << "Suma este egala cu " << s;
return 0;
}
În acest cod, variabilele n
și s
sunt declarate în funcția main
. Prin
urmare, dacă am adăuga o funcție care să afișeze variabila s
, următorul cod
nu ar funcționa, deoarece variabila s
este locală:
#include <iostream>
using namespace std;
void afisare() {
cout << "Suma este egala cu " << s; //Eroare, deoarece s este variabilă locală, fiind declarată în main().
}
int main()
{
int n, s = 0;
cin >> n;
for(int i = 1; i <= n; i++) {
s = s + i;
}
afisare();
return 0;
}
Pentru ca programul să funcționeze, vom declara variabila s
global:
#include <iostream>
using namespace std;
int s = 0; //Am declarat variabila s global
void afisare() {
cout << "Suma este egala cu " << s; //Funcționează, deoarece s este variabilă globală
}
int main()
{
int n;
cin >> n;
for(int i = 1; i <= n; i++) {
s = s + i;
}
afisare();
return 0;
}
Observații
- Variabilele globale fără valoare inițială specificată vor avea valoarea
0
, spre deosebire de variabilele locale, care au ca valoare inițială o valoare aleatorie; - Dacă există o variabilă globală și creăm una locală cu aceeași nume, atunci variabila considerată va fi cea locală.
Alte resurse sau bibliografie
DS
Autorul acestei lecții
Dominic Satnoianu
Această lecție a fost redactată de către Dominic Satnoianu.
© 2021 – 2025 Aspire Education Labs SRL. Toate drepturile rezervate.
Așa cum este specificat și în termeni și condiții, conținutul acestei pagini este protejat de legea drepturilor de autor și este interzisă copierea sau modificarea acestuia fără acordul scris al autorilor.
Încălcarea drepturilor de autor este o infracțiune și se pedepsește conform legii.
Comentarii 0