Diferența dintre variabila locală și globală

Diferențele cheie între variabila locală și variabila globală

  • Variabila locală este declarată în interiorul unei funcții, în timp ce variabila globală este declarată în afara funcției.
  • Variabilele locale sunt create atunci când funcția a început execuția și se pierd când funcția se termină, pe de altă parte, o variabilă globală este creată pe măsură ce începe execuția și se pierde când programul se termină.
  • Variabila locală nu oferă partajarea datelor, în timp ce variabila globală oferă partajarea datelor.
  • Variabilele locale sunt stocate pe stivă, în timp ce variabila globală este stocată într-o locație fixă ​​decisă de compilator.
  • Transmiterea parametrilor este necesară pentru variabilele locale, în timp ce nu este necesară pentru o variabilă globală

Diferența dintre variabila locală și globală

Ce este o variabilă?

Variabila este un nume atribuit unei zone de stocare pe care programul o poate manipula. Un tip de variabilă determină dimensiunea și aspectul memoriei variabilei.

De asemenea, determină intervalul de valori care trebuie stocat în acea memorie și natura operațiunilor care pot fi aplicate acelei variabile.

Domeniul de aplicare al variabilelor

Sfera de aplicare a variabilei este pur și simplu durata de viață a unei variabile. Este un bloc de cod sub care o variabilă este aplicabilă sau vie. De exemplu:

function foo(){
var x;
}

Declari o variabilă „x” în interiorul unei funcții „foo”. Sfera de aplicare a acelei variabile rămâne în interiorul acelei funcții, nu poate fi utilizată în afara acelei funcții.
Există trei locuri în care variabilele pe care le puteți declara limbaj de programare variabilă:

  • În interiorul unei funcții sau al unui bloc: variabile locale
  • În afara tuturor funcțiilor: variabile globale
  • În definirea parametrilor de funcție: Parametri formali

Variabila locala

Variabila locala este definit ca un tip de variabilă declarată în cadrul blocului sau subrutinelor de programare. Poate fi folosit doar în interiorul subrutinei sau blocului de cod în care este declarat. Variabila locală există până când blocul funcției este în execuție. După aceea, va fi distrus automat.

Exemplu de variabilă locală

public int add(){
int a =4;
int b=5;
return a+b;
}

Aici, „a” și „b” sunt variabile locale

Variabilă globală

A Variabilă globală în program este o variabilă definită în afara subrutinei sau funcției. Are o amploare globală înseamnă că își păstrează valoarea pe toată durata de viață a programului. Prin urmare, poate fi accesat în întreg programul de orice funcție definită în program, cu excepția cazului în care este umbrită.

Exemplu:

int a =4;
int b=5;
public int add(){
return a+b;
}

Aici, „a” și „b” sunt variabile globale.

Variabilă locală vs variabile globale

Iată câteva diferențe fundamentale între variabilele locale și globale.

Parametru Local Caritate
domeniu Este declarat în interiorul unei funcții. Este declarat în afara funcției.
Valoare Dacă nu este inițializată, este stocată o valoare de gunoi Dacă nu este inițializat, zero este stocat implicit.
Toată viața Este creat când funcția începe execuția și se pierde când funcțiile se termină. Este creat înainte ca execuția globală a programului să înceapă și se pierde când programul se termină.
Schimbul de date Partajarea datelor nu este posibilă deoarece datele variabilei locale pot fi accesate de o singură funcție. Partajarea datelor este posibilă deoarece mai multe funcții pot accesa aceeași variabilă globală.
parametrii Transmiterea parametrilor este necesară pentru ca variabilele locale să acceseze valoarea în altă funcție Trecerea parametrilor nu este necesară pentru o variabilă globală, deoarece este vizibilă pe tot parcursul programului
Modificarea valorii variabilei Când valoarea variabilei locale este modificată într-o funcție, modificările nu sunt vizibile în altă funcție. Când valoarea variabilei globale este modificată într-o funcție, modificările sunt vizibile în restul programului.
Accesat de Variabilele locale pot fi accesate cu ajutorul instrucțiunilor, în interiorul unei funcții în care sunt declarate. Puteți accesa variabile globale prin orice instrucțiune din program.
Stocare de memorie Este stocat pe stivă, dacă nu este specificat. Este stocat într-o locație fixă ​​decisă de compilator.

Avantajele utilizării variabilelor globale

  • Puteți accesa variabila globală din toate funcțiile sau modulele dintr-un program
  • Trebuie doar să declarați variabila globală o singură dată în afara modulelor.
  • Este utilizat în mod ideal pentru stocarea „constantelor”, deoarece vă ajută să păstrați consistența.
  • O variabilă globală este utilă atunci când mai multe funcții accesează aceleași date.

Avantajele utilizării variabilelor locale

  • Utilizarea variabilelor locale oferă o garanție că valorile variabilelor vor rămâne intacte în timpul executării sarcinii
  • Dacă mai multe sarcini modifică o singură variabilă care rulează simultan, atunci rezultatul poate fi imprevizibil. Dar declararea acesteia ca variabilă locală rezolvă această problemă, deoarece fiecare sarcină își va crea propria instanță a variabilei locale.
  • Puteți da variabilelor locale același nume în diferite funcții, deoarece acestea sunt recunoscute doar de funcția în care sunt declarate.
  • Variabilele locale sunt șterse de îndată ce orice funcție se termină și eliberează spațiul de memorie pe care îl ocupă.

Dezavantajele utilizării variabilelor globale

  • Prea multe variabile declarate ca fiind globale, apoi rămân în memorie până la finalizarea execuției programului. Acest lucru poate cauza o problemă de memorie lipsită.
  • Datele pot fi modificate prin orice funcție. Orice instrucțiune scrisă în program poate modifica valoarea variabilei globale. Acest lucru poate da rezultate imprevizibile în medii multi-tasking.
  • Dacă variabilele globale sunt întrerupte din cauza refactorizării codului, va trebui să schimbați toate modulele unde sunt apelate.

Dezavantajele utilizării variabilelor locale

  • Procesul de depanare a unei variabile locale este destul de complicat.
  • Datele comune care trebuie transmise în mod repetat, deoarece partajarea datelor nu este posibilă între module.
  • Au un domeniu de aplicare foarte limitat.

Ce este mai util?

Variabila locală și globală la fel de importantă în timpul scrierii unui program în orice limbă. Cu toate acestea, un număr mare de variabile globale poate ocupa o memorie uriașă. O schimbare nedorită a variabilelor globale devine greu de identificat. Prin urmare, este recomandabil să evitați declararea variabilelor globale nedorite.