Forskellen mellem lokal og global variabel
Nøgleforskelle mellem lokal variabel og global variabel
- Den lokale variabel erklæres inde i en funktion, mens den globale variabel erklæres uden for funktionen.
- Lokale variabler oprettes, når funktionen har startet eksekvering og går tabt når funktionen afsluttes, på den anden side oprettes en Global variabel når eksekveringen starter og går tabt når programmet slutter.
- Den lokale variabel giver ikke datadeling, mens den globale variabel giver datadeling.
- Lokale variabler gemmes på stakken, hvorimod den globale variable er gemt på en fast placering, som er bestemt af compileren.
- Parametreoverførsel er påkrævet for lokale variabler, hvorimod det ikke er nødvendigt for en global variabel
Hvad er en variabel?
Variabel er et navn, der tildeles et lagerområde, som programmet kan manipulere. En variabeltype bestemmer størrelsen og layoutet af variablens hukommelse.
Det bestemmer også rækken af værdier, der skal gemmes i denne hukommelse, og arten af operationer, der kan anvendes på den variabel.
Omfang af variabler
Variablens omfang er simpelthen levetiden for en variabel. Det er kodeblok, hvorunder en variabel er anvendelig eller levende. 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 den funktion.
Der er tre steder, hvor variabler du kan erklære variabelt programmeringssprog:
- Inde i en funktion eller en blok: Lokale variable
- Uden for alle funktioner: Globale variabler
- I definitionen af funktionsparametre: Formelle parametre
Lokal variabel
Lokal variabel er defineret som en type variabel erklæret inden for programmeringsblok eller underrutiner. Den kan kun bruges i den subrutine eller kodeblok, hvor den er deklareret. Den lokale variabel eksisterer, indtil blokken af funktionen er under udførelse. Herefter vil den automatisk blive ødelagt.
Eksempel på lokal variabel
public int add(){ int a =4; int b=5; return a+b; }
Her er 'a' og 'b' lokale variable
Global variabel
A Global variabel i programmet er en variabel defineret uden for subrutinen eller funktionen. Det har et globalt omfang, hvilket betyder, at det bevarer sin værdi gennem hele programmets levetid. Derfor kan den tilgås i hele programmet af enhver funktion, der er defineret i programmet, medmindre den er skygget.
Eksempel:
int a =4; int b=5; public int add(){ return a+b; }
Her er 'a' og 'b' globale variable.
Lokale variable vs globale variable
Her er nogle grundlæggende forskelle mellem lokale og globale variabler.
Parameter | Lokale | 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, gemmes nul som standard. |
Levetid | Den oprettes, når funktionen starter udførelse og går tabt, når funktionerne afsluttes. | Det oprettes før programmets globale udførelse starter og går tabt når programmet afsluttes. |
deling af data | Datadeling er ikke mulig, da data for den lokale variabel kun kan tilgås af én funktion. | Datadeling er mulig, da flere funktioner kan få adgang til den samme globale variabel. |
parametre | Parametreoverførsel er påkrævet for at lokale variabler kan få adgang til værdien i andre funktioner | Det er ikke nødvendigt at overføre parametre 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 én funktion, er ændringer synlige i resten af programmet. |
Tilgås af | Lokale variabler kan tilgås ved hjælp af udsagn inde i en funktion, hvori de er erklæret. | Du kan få adgang til globale variabler ved hjælp af ethvert udsagn i programmet. |
Hukommelseslagring | Det gemmes på stakken, medmindre det er angivet. | Det er gemt på et fast sted, som er bestemt af compileren. |
Fordele ved at bruge globale variabler
- Du kan få adgang til den globale variabel fra alle funktioner eller moduler i et program
- Du behøver kun at erklære global variabel enkelttid uden for modulerne.
- Det er ideelt brugt 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 den som lokal variabel løser dette problem, da hver opgave vil skabe sin egen forekomst af den lokale variabel.
- Du kan give lokale variabler det samme navn i forskellige funktioner, fordi de kun genkendes af den funktion, de er erklæret i.
- Lokale variabler slettes, så snart en funktion er slut, og frigiver den hukommelsesplads, 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 et problem med hukommelsen fuld.
- 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 multi-tasking miljøer.
- Hvis globale variabler afbrydes på grund af koderefactoring, skal du ændre alle de moduler, hvor de kaldes.
Ulemper ved at bruge lokale variabler
- Fejlretningsprocessen for en lokal variabel er ret vanskelig.
- Fælles data, der skal sendes gentagne 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, når du skriver et program på ethvert sprog. Imidlertid kan et stort antal af den globale variabel optage en enorm hukommelse. En uønsket ændring af globale variabler er blevet svær at identificere. Derfor er det tilrådeligt at undgå at erklære uønskede globale variabler.