Variabile globale și variabile locale, domeniu de vizibilitate în algoritmi în C++

În limbajul de programare C++, variabilele sunt utilizate pentru a stoca și manipula date. Există două tipuri principale de variabile: variabile globale și variabile locale. În acest articol, vom explora diferențele dintre cele două și modul în care acestea afectează domeniul de vizibilitate în algoritmi în C++.

Variabile globale

Variabilele globale sunt declarate în afara oricărei funcții și pot fi accesate de orice funcție din program. Acestea sunt vizibile în întregul cod și au un domeniu de vizibilitate global. Variabilele globale sunt utile atunci când avem nevoie ca mai multe funcții să aibă acces la aceleași date.

Pentru a declara o variabilă globală, aceasta trebuie să fie declarată în afara oricărei funcții, în partea de sus a fișierului sursă. Odată declarată, variabila poate fi utilizată în orice funcție din acel fișier sursă.

De exemplu, să presupunem că avem o variabilă globală numită “numar” și două funcții, “afisare” și “incrementare”. Putem utiliza variabila “numar” în ambele funcții fără a o declara din nou.

#include 
using namespace std;

int numar = 10;

void afisare() {
    cout << "Numarul este: " << numar << endl;
}

void incrementare() {
    numar++;
}

int main() {
    afisare();
    incrementare();
    afisare();

    return 0;
}

În acest exemplu, variabila globală “numar” este declarată în afara oricărei funcții și poate fi accesată de ambele funcții “afisare” și “incrementare”. Prin urmare, funcția “afisare” afișează valoarea inițială a variabilei “numar” (10), iar funcția “incrementare” o incrementează cu 1.

Variabile locale

Variabilele locale sunt declarate în interiorul unei funcții și pot fi accesate doar în interiorul acelei funcții. Acestea au un domeniu de vizibilitate local și nu pot fi utilizate în afara funcției în care sunt declarate.

Pentru a declara o variabilă locală, aceasta trebuie să fie declarată în interiorul corpului unei funcții. Odată ce funcția se termină de executat, variabila locală încetează să mai existe și nu poate fi accesată din alte funcții.

De exemplu, să presupunem că avem o funcție numită “suma” care primește două argumente și returnează suma lor. Putem declara două variabile locale, “a” și “b”, pentru a stoca aceste argumente și pentru a efectua operația de adunare.

#include 
using namespace std;

int suma(int a, int b) {
    int rezultat = a + b;
    return rezultat;
}

int main() {
    int x = 5;
    int y = 3;
    int rezultat = suma(x, y);
    cout << "Suma este: " << rezultat << endl;

    return 0;
}

În acest exemplu, variabilele locale “a” și “b” sunt declarate în interiorul funcției “suma” și pot fi accesate doar în interiorul acelei funcții. Acestea sunt utilizate pentru a stoca argumentele primite și pentru a calcula suma lor. Variabila locală “rezultat” este, de asemenea, declarată în interiorul funcției “suma” și este utilizată pentru a stoca rezultatul operației de adunare.

Domeniul de vizibilitate

Domeniul de vizibilitate se referă la partea de cod în care o variabilă poate fi accesată și utilizată. Variabilele globale au un domeniu de vizibilitate global și pot fi accesate în întregul cod, în timp ce variabilele locale au un domeniu de vizibilitate local și pot fi accesate doar în interiorul funcției în care sunt declarate.

Este important să fim atenți la domeniul de vizibilitate al variabilelor, deoarece utilizarea necorespunzătoare poate duce la erori și comportament neașteptat în program. De asemenea, este recomandat să folosim variabilele globale cu precauție, deoarece acestea pot afecta funcționarea altor funcții și pot face codul mai dificil de înțeles și de întreținut.

În concluzie, variabilele globale și variabilele locale sunt două concepte importante în limbajul de programare C++. Variabilele globale pot fi accesate de orice funcție din program și au un domeniu de vizibilitate global, în timp ce variabilele locale pot fi accesate doar în interiorul funcției în care sunt declarate și au un domeniu de vizibilitate local. Este important să înțelegem diferențele dintre cele două și să le utilizăm în mod corespunzător pentru a asigura un cod corect și ușor de întreținut.