Forskel mellem lokal og global variabel

Indholdsfortegnelse:

Anonim

Hvad er en variabel?

Variabel er et navn, der tildeles et lagerområde, som programmet kan manipulere. En variabel type bestemmer størrelsen og layoutet af variabelens hukommelse.

Det bestemmer også rækkevidden af ​​værdier, der skal lagres inde i den hukommelse, og arten af ​​operationer, der kan anvendes på den variabel.

I denne vejledning lærer du

  • Omfanget af variabler
  • Definition af lokal variabel
  • Definition af global variabel
  • Lokale variabler vs. globale variabler
  • Fordele ved at bruge globale variabler
  • Fordele ved at bruge lokale variabler
  • Ulemper ved at bruge globale variabler
  • Ulemper ved at bruge lokale variabler
  • Hvad er mere nyttigt?

Omfanget af variabler

Omfanget af variablen er simpelthen levetiden for en variabel. Det er en kodeblok, under hvilken en variabel kan anvendes eller er i live. For eksempel:

function foo(){var x;}

Du erklærer en variabel "x" inde i en funktion "foo." Omfanget af denne variabel forbliver inden for den funktion, den kan ikke bruges uden for denne funktion.

Der er tre steder, hvor variabler du kan erklære variabelt programmeringssprog:

  • Inde i en funktion eller en blok: Lokale variabler
  • Uden for alle funktioner: Globale variabler
  • I definitionen af ​​funktionsparametre: Formelle parametre

Nøgleforskel

  • Lokal variabel erklæres inde i en funktion, mens global variabel erklæres uden for funktionen.
  • Lokale variabler oprettes, når funktionen er startet udførelse og går tabt, når funktionen afsluttes. På den anden side oprettes den globale variabel, når udførelsen starter og går tabt, når programmet slutter.
  • Lokal variabel giver ikke datadeling, mens global variabel giver datadeling.
  • Lokale variabler er gemt på stakken, mens den globale variabel er gemt på en fast placering, der besluttes af compileren.
  • Parametre, der passerer, er påkrævet for lokale variabler, mens det ikke er nødvendigt for en global variabel

Lokal variabel

Lokal variabel defineres som en type variabel, der er deklareret inden for programmeringsblok eller underrutiner. Det kan kun bruges inde i underrutinen eller kodeblokken, hvori den er erklæret. Den lokale variabel eksisterer, indtil funktionsblokken er under udførelse. Derefter ødelægges den automatisk.

Eksempel på lokal variabel

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

Her er 'a' og 'b' lokale variabler

Global variabel

En global variabel i programmet er en variabel, der er defineret uden for underrutinen eller funktionen. Det har et globalt anvendelsesområde, hvilket betyder, at det holder sin værdi gennem hele programmets levetid. Derfor kan der fås adgang til det i hele programmet med enhver funktion, der er defineret i programmet, medmindre det er skyggefuldt.

Eksempel:

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

Her er 'a' og 'b' globale variabler.

Lokale variabler vs. Globale variabler

Her er nogle grundlæggende forskelle mellem lokale og globale variabler.

Parameter Lokal Global
Anvendelsesområde Det erklæres inde i en funktion. Det erklæres uden for funktionen.
Værdi Hvis den ikke initialiseres, gemmes en skraldværdi Hvis den ikke initialiseres, er nul gemt som standard.
Livstid Det oprettes, når funktionen starter udførelse og går tabt, når funktionerne afsluttes. Det oprettes inden programmets globale udførelse starter og går tabt, når programmet afsluttes.
Datadeling Datadeling er ikke mulig, da data fra den lokale variabel kun kan tilgås af en funktion. Datadeling er mulig, da flere funktioner kan få adgang til den samme globale variabel.
Parametre Parametre, der passerer, kræves for at lokale variabler kan få adgang til værdien i en anden funktion Parametre, der passerer, er ikke nødvendige for en global variabel, da den er synlig i hele programmet
Ændring af variabel værdi Når værdien af ​​den lokale variabel ændres i en funktion, er ændringerne ikke synlige i en anden funktion. Når værdien af ​​den globale variabel ændres i en funktion, er ændringer synlige i resten af ​​programmet.
Adgang til Du kan få adgang til lokale variabler ved hjælp af udsagn inden i en funktion, hvori de erklæres. Du kan få adgang til globale variabler ved hjælp af en hvilken som helst erklæring i programmet.
Hukommelseslagring Den opbevares på stakken, medmindre andet er angivet. Den gemmes på et fast sted, som kompilatoren bestemmer.

Fordele ved at bruge globale variabler

  • Du kan få adgang til den globale variabel fra alle funktionerne eller modulerne i et program
  • Du skal kun erklære global variabel én gang uden for modulerne.
  • Det bruges ideelt til opbevaring af "konstanter", da det hjælper dig med at holde konsistensen.
  • En global variabel er nyttig, når flere funktioner har adgang til de samme data.

Fordele ved at bruge lokale variabler

  • Brugen af ​​lokale variabler giver en garanti for, at værdierne af variabler forbliver intakte, mens opgaven kører
  • Hvis flere opgaver ændrer en enkelt variabel, der kører samtidigt, kan resultatet være uforudsigeligt. Men at erklære det som en lokal variabel løser dette problem, da hver opgave opretter sin egen forekomst af den lokale variabel.
  • Du kan give lokale variabler samme navn i forskellige funktioner, fordi de kun genkendes af den funktion, de er erklæret i.
  • Lokale variabler slettes, så snart enhver funktion er forbi, og frigør det hukommelsesrum, som den optager.

Ulemper ved at bruge globale variabler

  • For mange variabler erklæret som globale, så forbliver de i hukommelsen, indtil programudførelsen er afsluttet. Dette kan forårsage problemer med hukommelse uden hukommelse.
  • Data kan ændres af enhver funktion. Enhver erklæring skrevet i programmet kan ændre værdien af ​​den globale variabel. Dette kan give uforudsigelige resultater i miljøer med flere opgaver.
  • Hvis globale variabler afbrydes på grund af kodeomdannelse, skal du ændre alle moduler, hvor de kaldes.

Ulemper ved at bruge lokale variabler

  • Fejlfindingsprocessen for en lokal variabel er ret vanskelig.
  • Almindelige data kræves for at videregive flere gange, da datadeling ikke er mulig mellem moduler.
  • De har et meget begrænset omfang.

Hvad er mere nyttigt?

Den lokale og globale variabel er lige så vigtig, mens du skriver et program på ethvert sprog. Imidlertid kan et stort antal af den globale variabel besætte en enorm hukommelse. En uønsket ændring af globale variabler er blevet svært at identificere. Derfor tilrådes det at undgå at erklære uønskede globale variabler.