Recomandat, 2020

Alegerea Editorului

Diferența dintre variabilele locale și globale

Așa cum am discutat mai devreme, o variabilă este un nume dat unei locații de memorie și trebuie declarat înainte de a fi utilizat. În C, toate variabilele sunt declarate la începutul programului. În C ++, variabilele pot fi declarate, în orice moment, înainte de a fi utilizate în instrucțiuni.

Variabilele sunt în continuare clasificate în variabilele "locale" și "globale", care reprezintă subiectul principal al discuției noastre. Aici principala diferență dintre o variabilă locală și globală este aceea că o variabilă locală este declarată în interiorul unui bloc de funcții, unde variabila globală este declarată în afara funcțiilor din program.

Să studiem câteva diferențe între o variabilă locală și o variabilă globală, împreună cu o diagramă de comparație.

Diagramă de comparație:

Bazele comparațieiVariabilă localăVariabila globală
DeclaraţieVariabilele sunt declarate în interiorul unei funcții.Variabilele sunt declarate în afara oricărei funcții.
domeniuÎn cadrul unei funcții, în interiorul căreia sunt declarate.De-a lungul programului.
AccesAccesate numai de declarații, în interiorul unei funcții în care sunt declarate.Accesat prin orice declarație din întregul program.
ViaţăCreat când blocul de funcții este introdus și distrus la ieșire.Rămâneți în existență pentru întreaga perioadă în care programul dvs. se execută.
DepozitareVariabilele locale sunt stocate pe stivă, cu excepția cazului în care sunt specificate.Stocată într-o locație fixă ​​decisă de un compilator.

Definiția variabilei locale

O variabilă locală este întotdeauna declarată în interiorul unui bloc de funcții. În C, o variabilă locală este declarată la începutul unui bloc de cod. În C ++, ele pot fi declarate oriunde în blocul de coduri înainte de utilizarea lor. Variabilele locale pot fi accesate numai prin instrucțiunile scrise în interiorul unei funcții în care sunt declarate variabilele locale. Ele sunt sigure într-un sens că nu pot fi accesate de nicio altă funcție a aceluiași program.

Variabila locală există până când blocul funcției este în execuție și, prin urmare, distrus după executarea de ieșire din bloc. Variabilele locale își pierd conținutul de îndată ce executarea a părăsit blocul în care sunt declarate.

Motivul este că variabilele locale sunt stocate pe stivă, cu excepția cazului în care se specifică stocarea lor specială. Stiva este dinamică, iar schimbarea locului de memorie duce la motivul pentru care variabila locală nu își păstrează valoarea imediat ce blocul unei funcții există.

Notă:
Cu toate acestea, există o modalitate de a păstra valoarea unei variabile locale, prin utilizarea modificatorului "static".

Definiția variabilei globale

O variabilă globală este declarată în afara tuturor funcțiilor prezente într-un program. Spre deosebire de variabilele locale, variabila globală poate fi accesată prin orice funcție prezentă într-un program. Variabilele globale nu sunt foarte fiabile, deoarece valoarea lor poate fi modificată prin orice funcție prezentă în program.

Variabilele globale rămân în vigoare până când întregul program este executat complet. Variabilele globale își păstrează valorile până când programul este în execuție. Motivul este că acestea sunt stocate pe o regiune fixă ​​de memorie, decisă de compilator.

O variabilă globală este utilă în situațiile în care mai multe funcții accesează aceleași date. Utilizarea unui număr mare de variabile globale ar putea fi problematică, deoarece pot exista modificări nedorite ale valorii unei variabile globale.

Diferența cheie între variabilele locale și globale.

  1. Variabilele locale sunt numite "locale" deoarece sunt cunoscute doar afirmațiilor scrise într-o funcție în interiorul căreia sunt declarate și nu sunt cunoscute altor funcții prezente în afara blocului de funcții. În cazul variabilei globale, ele sunt cunoscute fiecărei funcții prezente într-un program; prin urmare, ele sunt numite "globale".
  2. Variabilele globale își păstrează valoarea până când programul se află în faza de execuție, deoarece acestea sunt stocate la o locație fixă ​​stabilită de compilator. Variabilele locale sunt stocate pe stivă; prin urmare, ele nu își păstrează valoarea deoarece "stiva" este dinamică în natură, dar compilatorul poate fi direcționat să-și păstreze valoarea, prin utilizarea modificatorului "static".
  3. Dacă o declarație globală și o variabilă locală sunt declarate cu același nume, atunci toate instrucțiunile unui bloc de cod în care este declarată variabila locală se vor referi doar la o variabilă locală și nu vor produce niciun efect asupra unei variabile globale.
  4. O variabilă locală este distrusă atunci când controlul programului iese din blocul în care este declarată variabila locală. Cu toate acestea, o variabilă globală este distrusă atunci când întregul program este terminat.

Concluzie:

Variabilele locale și globale sunt la fel de necesare în timp ce scrieți programul. Dar declararea unui număr mare de variabile globale ar putea fi problematică într-un program mare, deoarece poate provoca modificări nedorite la o variabilă globală; și ar deveni greu să se identifice care parte a unui program a făcut acest lucru. Prin urmare, ar trebui să evităm declararea variabilelor globale inutile.

Top