Razlika med lokalno in globalno spremenljivko

Kazalo:

Anonim

Kaj je spremenljivka?

Spremenljivka je ime, dodeljeno pomnilniškemu območju, s katerim lahko program upravlja. Tip spremenljivke določa velikost in postavitev pomnilnika spremenljivke.

Določa tudi obseg vrednosti, ki jih je treba shraniti v pomnilnik, in naravo operacij, ki jih je mogoče uporabiti za to spremenljivko.

V tej vadnici boste izvedeli

  • Obseg spremenljivk
  • Opredelitev lokalne spremenljivke
  • Opredelitev globalne spremenljivke
  • Lokalne spremenljivke in globalne spremenljivke
  • Prednosti uporabe globalnih spremenljivk
  • Prednosti uporabe lokalnih spremenljivk
  • Slabosti uporabe globalnih spremenljivk
  • Slabosti uporabe lokalnih spremenljivk
  • Kaj je bolj koristno?

Obseg spremenljivk

Obseg spremenljivke je preprosto življenjska doba spremenljivke. To je blok kode, pod katerim je spremenljivka uporabna ali živa. Na primer:

function foo(){var x;}

Spremenljivko "x" prijavite znotraj funkcije "foo". Obseg te spremenljivke ostane znotraj te funkcije in je ni mogoče uporabiti zunaj te funkcije.

Obstajajo trije kraji, kjer spremenljivke lahko razglasite za spremenljivi programski jezik:

  • Znotraj funkcije ali bloka: Lokalne spremenljivke
  • Zunaj vseh funkcij: Globalne spremenljivke
  • V definiciji funkcijskih parametrov: Formalni parametri

KLJUČNA RAZLIKA

  • Lokalna spremenljivka je prijavljena znotraj funkcije, medtem ko je globalna spremenljivka deklarirana zunaj funkcije.
  • Lokalne spremenljivke se ustvarijo, ko se funkcija začne izvajati, in se ob koncu funkcije izgubijo. Po drugi strani pa se Globalna spremenljivka ustvari ob začetku izvajanja in se izgubi, ko se program konča.
  • Lokalna spremenljivka ne omogoča izmenjave podatkov, medtem ko globalna spremenljivka omogoča skupno rabo podatkov.
  • Lokalne spremenljivke se shranijo v sklad, medtem ko se globalna spremenljivka shrani na določeni lokaciji, ki jo določi prevajalnik.
  • Prenos parametrov je potreben za lokalne spremenljivke, medtem ko za globalno spremenljivko ni potreben

Lokalna spremenljivka

Lokalna spremenljivka je definirana kot vrsta spremenljivke, prijavljene v programskem bloku ali podprogramih. Uporablja se lahko samo znotraj podprograma ali bloka kode, v katerem je deklariran. Lokalna spremenljivka obstaja, dokler se blok funkcije ne izvaja. Po tem bo samodejno uničen.

Primer lokalne spremenljivke

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

Tu sta 'a' in 'b' lokalni spremenljivki

Globalna spremenljivka

Globalne spremenljivke v programu je spremenljivka definirana izven podprograma ali funkcije. Ima globalno področje uporabe, kar pomeni, da ohranja svojo vrednost skozi celotno življenjsko dobo programa. Do njega lahko torej v celotnem programu dostopa katera koli funkcija, definirana v programu, razen če je v senci.

Primer:

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

Tu sta 'a' in 'b' globalni spremenljivki.

Lokalna spremenljivka vs. Globalne spremenljivke

Tu je nekaj temeljnih razlik med lokalnimi in globalnimi spremenljivkami.

Parameter Lokalno Globalno
Obseg Prijavljen je znotraj funkcije. Prijavljen je zunaj funkcije.
Vrednost Če ni inicializiran, se shrani vrednost smeti Če ni inicializirana, se nič privzeto shrani.
Življenska doba Ustvari se, ko se funkcija začne izvajati, in se izgubi, ko se funkcije končajo. Ustvari se pred začetkom izvajanja programa in izgubi ob koncu programa.
Skupna raba podatkov Skupna raba podatkov ni mogoča, saj lahko do podatkov lokalne spremenljivke dostopa samo ena funkcija. Skupna raba podatkov je mogoča, saj lahko več funkcij dostopa do iste globalne spremenljivke.
Parametri Prenos parametrov je potreben za lokalne spremenljivke za dostop do vrednosti v drugi funkciji Prenos parametrov ni potreben za globalno spremenljivko, saj je vidna v celotnem programu
Sprememba spremenljive vrednosti Ko je vrednost lokalne spremenljivke spremenjena v eni funkciji, spremembe niso vidne v drugi funkciji. Ko se vrednost globalne spremenljivke spremeni v eni funkciji, so spremembe vidne v preostalem delu programa.
Dostopno Do lokalnih spremenljivk je mogoče dostopati s pomočjo stavkov znotraj funkcije, v kateri so deklarirane. Do globalnih spremenljivk lahko dostopate s katerim koli stavkom v programu.
Pomnilnik Shranjena je v sklad, razen če je določeno. Shranjena je na fiksni lokaciji, ki jo določi prevajalnik.

Prednosti uporabe globalnih spremenljivk

  • Do globalne spremenljivke lahko dostopate iz vseh funkcij ali modulov v programu
  • Globalno spremenljivko morate prijaviti samo enkrat zunaj modulov.
  • Idealno se uporablja za shranjevanje "konstant", saj vam pomaga ohranjati konsistenco.
  • Globalna spremenljivka je uporabna, kadar več funkcij dostopa do istih podatkov.

Prednosti uporabe lokalnih spremenljivk

  • Uporaba lokalnih spremenljivk zagotavlja, da bodo vrednosti spremenljivk ostale nedotaknjene med izvajanjem naloge
  • Če več nalog spremeni isto spremenljivko, ki se izvaja hkrati, je rezultat morda nepredvidljiv. Toda če jo razglasite za lokalno spremenljivko, to težavo rešite, saj bo vsaka naloga ustvarila svoj primerek lokalne spremenljivke.
  • Lokalnim spremenljivkam lahko dodelite isto ime v različnih funkcijah, ker jih prepozna samo funkcija, v kateri so deklarirane.
  • Lokalne spremenljivke se izbrišejo takoj, ko je katera koli funkcija končana, in sprostijo pomnilniški prostor, ki ga zasede.

Slabosti uporabe globalnih spremenljivk

  • Preveč spremenljivk je razglašenih za globalne, nato ostanejo v pomnilniku, dokler se ne zaključi izvajanje programa. To lahko povzroči težavo z pomanjkanjem pomnilnika.
  • Podatke lahko spreminja katera koli funkcija. Vsak stavek, zapisan v programu, lahko spremeni vrednost globalne spremenljivke. To lahko daje nepredvidljive rezultate v okoljih z več nalogami.
  • Če se globalne spremenljivke ukinejo zaradi preoblikovanja kode, boste morali spremeniti vse module, kjer so poklicane.

Slabosti uporabe lokalnih spremenljivk

  • Postopek odpravljanja napak lokalne spremenljivke je precej zapleten.
  • Skupni podatki, ki jih je treba večkrat prenašati, ker izmenjava podatkov med moduli ni mogoča.
  • Imajo zelo omejen obseg.

Kaj je bolj koristno?

Lokalna in globalna spremenljivka sta enako pomembni med pisanjem programa v katerem koli jeziku. Vendar pa lahko veliko število globalne spremenljivke zasede ogromen pomnilnik. Neželeno spremembo globalnih spremenljivk je težko prepoznati. Zato se je priporočljivo izogibati razglasitvi neželenih globalnih spremenljivk.