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

Tartalomjegyzék:

Anonim

Mi az a változó?

A változó egy tároló terü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éktartományt és a változóra alkalmazható műveletek jellegét.

Ebben az oktatóanyagban megtanulja

  • A változók köre
  • A helyi változó meghatározása
  • A globális változó meghatározása
  • Helyi változó vs. globális változók
  • A globális változók használatának előnyei
  • A helyi változók használatának előnyei
  • A globális változók használatának hátrányai
  • A helyi változók használatának hátrányai
  • Mi a hasznosabb?

A 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 életben van. Például:

function foo(){var x;}

A "foo" függvényben "x" változót deklarálsz. A változó hatóköre a függvényen belül marad, ezért a funkción kívül nem használható.

Három helyen deklarálhatjuk a változókat a változó programozási nyelvre:

  • Funkció vagy blokk belsejében: Helyi változók
  • Minden funkción kívül: Globális változók
  • A függvényparaméterek meghatározásában: Formális paraméterek

FŐ KÜLÖNBSÉG

  • A helyi változót egy függvényen belül, míg a globális változót a függvényen kívül deklaráljuk.
  • A helyi változók akkor jönnek létre, amikor a függvény végrehajtása megkezdődött, és elvesznek, amikor a függvény leáll, másrészt a globális változó a végrehajtás kezdetekor jön létre, és elvész, amikor a program véget ér.
  • A helyi változó nem biztosít adatmegosztást, míg a globális változó az adatok megosztását.
  • A helyi változókat a veremben tároljuk, míg a globális változót a fordító által meghatározott fix helyen tároljuk.
  • Paraméterek átadása szükséges a helyi változókhoz, míg globális változóhoz nem

Helyi változó

A helyi változó a programozó blokkon vagy alprogramokon deklarált változó típusaként definiálható. Csak azon alprogramban vagy kódblokkban használható, amelyben deklarálva van. A helyi változó mindaddig 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 a 'b' helyi változók

Globális változó

A program globális változója az alprogramon vagy a függvényen kívül definiált változó. Globális hatóköre azt jelenti, hogy értékét a program egész élettartama alatt megőrzi. Ennélfogva az egész programban elérhető, a programban meghatározott bármely funkcióval, hacsak nem árnyékolt.

Példa:

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

Itt az 'a' és a '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 globális változók között.

Paraméter Helyi Globális
Hatály Egy függvényen belül van deklarálva. A funkción kívülre van deklarálva.
Érték Ha nincs inicializálva, akkor egy szemét értéket tárol Ha nincs inicializálva, akkor a nulla alapértelmezés szerint tárolásra kerül.
Élettartam Akkor jön létre, amikor a függvény elindítja a végrehajtást, és elveszik, amikor a funkciók leállnak. A program a globális végrehajtás megkezdése előtt jön létre és elvész, amikor a program befejeződik.
Adatmegosztás Adatmegosztás nem lehetséges, mivel a helyi változó adatai csak egy funkcióval érhetők el. Adatmegosztás lehetséges, mivel több funkció is elérheti ugyanazt a globális változót.
Paraméterek Paraméterek átadása szükséges ahhoz, hogy a helyi változók elérjék az értéket egy másik függvényben A paraméterek átadása nem szükséges egy globális változóhoz, mivel az az egész programban látható
A változó érték módosítása Amikor a helyi változó értéke módosul az egyik függvényben, akkor egy másik függvényben a változások nem láthatók. Ha a globális változó értéke egy függvényben módosul, akkor a program többi részén változások láthatók.
Hozzáférés A helyi változók utasítások segítségével érhetők el, egy olyan függvényen belül, amelyben deklarálva vannak. A globális változókat a program bármelyik utasításával elérheti.
Memória tárolása Hacsak nincs megadva, a veremben tárolódik. A fordító által meghatározott fix helyen tárolódik.

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

  • A globális változóhoz a program összes funkciója vagy modulja hozzáférhet
  • Csak egyszeri globális változót kell deklarálnia a modulokon kívül.
  • Ideális az "állandók" tárolására, mivel segít megőrizni az állagot.
  • A globális változó akkor hasznos, ha több funkció fér hozzá ugyanazokhoz az adatokhoz.

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

  • A helyi változók használata garantálja, hogy a változók értékei sértetlenek maradnak a feladat futása közben
  • Ha több feladat változtat egyetlen változót, amely egyszerre fut, akkor az eredmény kiszámíthatatlan lehet. De a helyi változónak nyilvánítás megoldja ezt a problémát, mivel minden feladat létrehozza a helyi változó saját példányát.
  • Megadhatja a helyi változóknak ugyanazt a nevet a különböző függvényekben, mert csak az a funkció ismeri fel őket, amelyben deklaráltak.
  • A helyi változókat törli, amint bármely funkció véget ér, és felszabadítják az általa elfoglalt memóriaterületet.

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

  • Túl sok globálissá nyilvánított változó akkor marad a memóriában, amíg a program végrehajtása befejeződik. Ez a memórián belüli problémát okozhatja.
  • Az adatok bármely funkcióval módosíthatók. A programba írt bármely állítás megváltoztathatja a globális változó értékét. Ez kiszámíthatatlan eredményeket hozhat többfeladatos környezetekben.
  • Ha a globális változókat a kód újrakezdése miatt megszüntetjük, akkor meg kell változtatnia az összes modult, ahol hívják őket.

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

  • A helyi változó hibakeresési folyamata meglehetősen bonyolult.
  • Az ismételt továbbításhoz szükséges közös adatok, mivel az adatok megosztása nem lehetséges a modulok között.
  • Nagyon korlátozott hatályúak.

Mi a hasznosabb?

A helyi és globális változó egyaránt fontos, miközben programot írunk bármilyen nyelvre. A globális változó nagy száma azonban hatalmas memóriát foglalhat el. A globális változók nemkívánatos változását nehéz azonosítani. Ezért célszerű elkerülni a nem kívánt globális változók deklarálását.