Declararea variabilelor



În C++ variabile pot fi: locale, globale și dinamice. Vom discuta doar despre variabile locale și globale.


Variabile locale

Variabilele locale se declară într-un anumit bloc al programului, în corpul unei funcții. Fie programul de mai jos:

#include < iostream >
using namespace std;

void F()
{
    int x;
    x = 5;
    cout << x << endl;
}

int main()
{
    int y = 10;
    F();
    cout << y << endl;
    return 0;
}

Variabilele x și y declarate în programul de mai sus sunt locale. Variabila x poate fi utilizată numai în funcție F(), iar variabila y numai în funcția main(). Mai mult, cele două variabile ar fi putut avea același nume și nu ar fi fost nicio confuzie.


Variabilele locale respectă următoarele reguli:


Observație: Parametrii formali ai unei funcții respectă proprietățile unei variabile locale. Nu vom putea declara în blocul funcției variabile cu același nume ca al parametrilor formali.



Variabile globale

Variabilele globale se declară în afara oricărei funcții. La declarare, ele sunt inițializate cu 0.

#include < iostream >
using namespace std;

int x;

void F()
{
    cout << x << endl;
    x = 10;
}

int y;

int main()
{
    cout << x << " " << y << endl;
    x = 5; y = 15;
    F();
    cout << x << " " << y << endl;
    return 0;
}

În programul de mai sus variabilele x și y sunt globale. Variabila x poate fi utilizată atât în funcția main() cât și in F(), iar variabila y numai în main().


Variabilele globale respectă următoarele reguli:


Observație: Într-un program putem avea și variabile globale și variabile locale, ba chiar variabile globale și locale cu același nume. Următorul program exemplifică această situație. Rulați-l și analizați valorile afișate pentru a deduce modul în care sunt ele vizibile!

#include < iostream >
using namespace std;

int x;

void F()
{
    cout << x << endl; //5, variabila globala
    int x = 10;
    cout << x << endl; //10, variabila locala in F()
    {
        int x = 20;
        cout << x << endl; //20, variabila locala în F(), blocul interior
    }
    cout << x << endl; //10, variabila locala in F()
}

int y;

int main()
{
    cout << x << endl; //0, variabila globală
    x = 5;
    cout << x << endl; //5, variabila globala
    F();
    cout << x << endl; //5, variabila globala
    int x = 100;
    cout << x << endl; //100, variabila locala in main()
    return 0;
}

Observație: Dacă într-un program avem variabile cu același nume, dar cu domenii de vizibilitate diferite, are prioritate variabila cu domeniul de vizibilitate cel mai mic. În particular, dacă ave o variabilă globală și una locală cu același nume are prioritate variabila locală.


Observație: Dacă declarăm o variabilă în expresia de inițializare a unei instrucțiuni for, ea va fi vizibilă numai în expresiile de control ale instrucțiunii for și în blocul subordonat acesteia. De exemplu:

for(int i =1 ; i <= 10 ; i ++)
  cout << i << " " ;

Color Contrast

Text Size

Text Spacing

Reading Aids


În această secțiune poți genera un rezumat al conținutului paginii folosind AI! Fii liber să folosești butonul de mai jos oricând ești pe grabă și nu ai timp să înveți tot!


Summary

În această secțiune poți întreba expertul nostru robot orice legat de nelămuririle pe care le-ai întâlnit de-a lungul lecțiilor! Fii liber să folosești butonul de mai jos oricând ai nevoie de explicații adiționale!


Chatbot