A helyi és a globális változó közötti különbség

Főbb különbségek a helyi változó és a globális változó között

  • A lokális változót a függvényen belül, míg a globális változót a függvényen kívül deklarálják.
  • A lokális változók akkor jönnek létre, amikor a függvény elindította a végrehajtást, és elvesznek, amikor a függvény leáll, másrészt a globális változó a végrehajtás megkezdésekor jön létre, és a program végén elvész.
  • A helyi változó nem biztosít adatmegosztást, míg a globális változó adatmegosztást biztosít.
  • A helyi változókat a verem tárolja, míg a globális változót a fordító által meghatározott rögzített helyen tárolja.
  • A paraméterek átadása lokális változókhoz szükséges, míg globális változók esetén nem szükséges

Különbség a helyi és a globális változó között

Mi az a változó?

A változó egy tárterülethez rendelt név, amelyet a program kezelhet. A változó típusa határozza meg a változó memóriájának méretét és elrendezését.

Meghatározza továbbá a memóriában tárolandó értékek tartományát és az adott változóra alkalmazható műveletek jellegét.

Változók köre

A változó hatóköre egyszerűen egy változó élettartama. Ez egy kódblokk, amely alatt egy változó alkalmazható vagy él. Például:

function foo(){
var x;
}

Egy „x” változót deklarál a „foo” függvényen belül. A változó hatóköre a függvényen belül marad, a függvényen kívül nem használható.
Három helyen lehet változókat deklarálni változó programozási nyelven:

  • Függvényen vagy blokkon belül: Helyi változók
  • Az összes függvényen kívül: Globális változók
  • A függvényparaméterek meghatározásában: Formális paraméterek

Helyi változó

Helyi változó a programozási blokkon vagy alprogramokon belül deklarált változó típusaként van definiálva. Csak abban az alprogramban vagy kódblokkban használható, amelyben deklarálva van. A lokális változó addig létezik, amíg a függvény blokkja végrehajtás alatt van. Ezt követően automatikusan megsemmisül.

Példa a helyi változóra

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

Itt az „a” és „b” helyi változók

Globális változó

A Globális változó a programban az alprogramon vagy függvényen kívül definiált változó. Globális hatóköre azt jelenti, hogy a program teljes élettartama alatt megőrzi értékét. Ezért a programban bármely, a programon belül definiált funkcióval elérhető, hacsak nincs árnyékolva.

Példa:

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

Itt „a” és „b” globális változók.

Helyi változó vs globális változók

Íme néhány alapvető különbség a helyi és a globális változók között.

Vizsgált paraméter helyi Globál
Kör Ez egy függvényen belül van deklarálva. A függvényen kívül van deklarálva.
Érték Ha nincs inicializálva, a rendszer egy szemét értéket tárol Ha nincs inicializálva, a nulla alapértelmezettként kerül tárolásra.
Élettartam Akkor jön létre, amikor a függvény elindítja a végrehajtást, és elveszik, amikor a függvények befejeződnek. A program globális végrehajtásának megkezdése előtt jön létre, és a program befejezésekor elveszik.
Adatmegosztás Az adatmegosztás nem lehetséges, mivel a helyi változó adatai csak egy funkcióval érhetők el. Az adatmegosztás lehetséges, mivel több funkció is hozzáférhet ugyanahhoz a globális változóhoz.
paraméterek A paraméterek átadása szükséges ahhoz, hogy a helyi változók hozzáférjenek az értékhez más függvényben A paraméterek átadása nem szükséges egy globális változóhoz, mivel az egész programban látható
Változó érték módosítása Ha a lokális változó értéke egy függvényben módosul, a változások nem láthatók egy másik függvényben. Ha egy függvényben módosítjuk a globális változó értékét, a változások a program többi részében is láthatók.
Hozzáfért A lokális változókat utasítások segítségével érhetjük el, egy függvényen belül, amelyben deklarálva vannak. A globális változókat a program bármely utasításával elérheti.
Memória tárolása Ha nincs megadva, a veremben tárolja. A fordító által meghatározott rögzített helyen tároljuk.

A globális változók használatának előnyei

  • A globális változót egy program összes függvényéből vagy moduljából érheti el
  • A globális változót csak egyszer kell deklarálnia a modulokon kívül.
  • Ideálisan használható „állandók” tárolására, mivel segít megőrizni a konzisztenciát.
  • A globális változó akkor hasznos, ha több függvény is hozzáfér ugyanahhoz az adathoz.

A helyi változók használatának előnyei

  • A lokális változók használata garantálja, hogy a változók értékei érintetlenek maradnak a feladat futása közben
  • Ha több feladat megváltoztatja az egyidejűleg futó változót, akkor az eredmény megjósolhatatlan lehet. De a helyi változóként való deklarálás megoldja ezt a problémát, mivel minden feladat létrehozza a saját példányát a helyi változóból.
  • A helyi változóknak ugyanazt a nevet adhatjuk a különböző függvényekben, mert csak az a függvény ismeri fel őket, amelyben deklarálva vannak.
  • A helyi változók törlődnek, amint bármely funkció véget ér, és felszabadítja az általa elfoglalt memóriaterületet.

A globális változók használatának hátrányai

  • Túl sok változó van deklarálva globálisnak, és a program végrehajtásáig a memóriában maradnak. Ez a Memória megtelt problémát okozhatja.
  • Az adatok bármely funkcióval módosíthatók. A programban írt bármely utasítás megváltoztathatja a globális változó értékét. Ez megjósolhatatlan eredményeket adhat többfeladatos környezetben.
  • Ha a globális változókat a kód átalakítása miatt leállítják, akkor minden olyan modult meg kell változtatnia, ahol meghívásra kerültek.

A helyi változók használatának hátrányai

  • A lokális változó hibakeresési folyamata meglehetősen bonyolult.
  • A közös adatokat ismételten át kell adni, mivel az adatmegosztás nem lehetséges a modulok között.
  • Nagyon korlátozott hatókörük van.

Mi a hasznosabb?

A lokális és a globális változó egyformán fontos bármilyen nyelvű program írásakor. A globális változók nagy része azonban hatalmas memóriát foglalhat el. A globális változók nem kívánatos változását nehéz azonosítani. Ezért tanácsos kerülni a nem kívánt globális változók deklarálását.