Skillnad mellan lokal och global variabel
Nyckelskillnader mellan lokal variabel och global variabel
- Den lokala variabeln deklareras inuti en funktion, medan den globala variabeln deklareras utanför funktionen.
- Lokala variabler skapas när funktionen har startat exekvering och går förlorade när funktionen avslutas, å andra sidan skapas en Global variabel när exekvering startar och går förlorad när programmet avslutas.
- Den lokala variabeln tillhandahåller inte datadelning, medan den globala variabeln tillhandahåller datadelning.
- Lokala variabler lagras i stacken, medan den globala variabeln lagras på en fast plats som bestäms av kompilatorn.
- Parametrar som passerar krävs för lokala variabler, medan det inte är nödvändigt för en global variabel
Vad är en variabel?
Variabel är en namntilldelning till ett lagringsområde som programmet kan manipulera. En variabeltyp bestämmer storleken och layouten på variabelns minne.
Den bestämmer också intervallet av värden som måste lagras i det minnet och arten av operationer som kan tillämpas på den variabeln.
Variablers omfattning
Variabelns omfattning är helt enkelt livslängden för en variabel. Det är ett kodblock under vilket en variabel är tillämplig eller levande. Till exempel:
function foo(){ var x; }
Du deklarerar en variabel "x" inuti en funktion "foo." Omfattningen av den variabeln förblir inom den funktionen, den kan inte användas utanför den funktionen.
Det finns tre ställen där variabler du kan deklarera variabelt programmeringsspråk:
- Inuti en funktion eller ett block: Lokala variabler
- Utanför alla funktioner: Globala variabler
- I definitionen av funktionsparametrar: Formella parametrar
Lokal variabel
Lokal variabel definieras som en typ av variabel som deklareras inom programmeringsblock eller subrutiner. Den kan endast användas i subrutinen eller kodblocket där den deklareras. Den lokala variabeln existerar tills blocket av funktionen är under exekvering. Efter det kommer den att förstöras automatiskt.
Exempel på lokal variabel
public int add(){ int a =4; int b=5; return a+b; }
Här är 'a' och 'b' lokala variabler
Global variabel
A Global variabel i programmet är en variabel definierad utanför subrutinen eller funktionen. Den har en global räckvidd, vilket innebär att den behåller sitt värde under hela programmets livstid. Därför kan den nås genom hela programmet med vilken funktion som helst som definieras i programmet, såvida den inte är skuggad.
Exempelvis:
int a =4; int b=5; public int add(){ return a+b; }
Här är 'a' och 'b' globala variabler.
Lokala variabler vs globala variabler
Här är några grundläggande skillnader mellan lokala och globala variabler.
Parameter | Lokala | Välgörenhet |
---|---|---|
Omfattning | Det deklareras inuti en funktion. | Det deklareras utanför funktionen. |
Värderar | Om det inte initieras lagras ett skräpvärde | Om den inte initieras lagras noll som standard. |
Livslängd | Den skapas när funktionen börjar köras och går förlorad när funktionerna avslutas. | Det skapas innan programmets globala körning startar och förloras när programmet avslutas. |
Datadelning | Datadelning är inte möjligt eftersom data från den lokala variabeln kan nås av endast en funktion. | Datadelning är möjligt eftersom flera funktioner kan komma åt samma globala variabel. |
Driftparametrar | Parametrar som passerar krävs för att lokala variabler ska komma åt värdet i andra funktioner | Parametrar som passerar är inte nödvändigt för en global variabel eftersom den är synlig i hela programmet |
Ändring av variabelvärde | När värdet på den lokala variabeln modifieras i en funktion är ändringarna inte synliga i en annan funktion. | När värdet på den globala variabeln modifieras i en funktion är förändringar synliga i resten av programmet. |
Nås av | Lokala variabler kan nås med hjälp av satser, i en funktion där de deklareras. | Du kan komma åt globala variabler genom valfri sats i programmet. |
Minneslagring | Den lagras i stapeln om inget annat anges. | Den lagras på en fast plats som bestäms av kompilatorn. |
Fördelar med att använda globala variabler
- Du kan komma åt den globala variabeln från alla funktioner eller moduler i ett program
- Du behöver bara deklarera global variabel singeltid utanför modulerna.
- Den används idealiskt för att lagra "konstanter" eftersom den hjälper dig att behålla konsistensen.
- En global variabel är användbar när flera funktioner har åtkomst till samma data.
Fördelar med att använda lokala variabler
- Användningen av lokala variabler ger en garanti för att värdena för variabler förblir intakta medan uppgiften körs
- Om flera uppgifter ändrar en enskild variabel som körs samtidigt, kan resultatet bli oförutsägbart. Men att deklarera den som lokal variabel löser detta problem eftersom varje uppgift kommer att skapa sin egen instans av den lokala variabeln.
- Du kan ge lokala variabler samma namn i olika funktioner eftersom de bara känns igen av funktionen de är deklarerade i.
- Lokala variabler raderas så snart någon funktion är över och frigör minnesutrymmet som den upptar.
Nackdelar med att använda globala variabler
- För många variabler deklarerade som globala, sedan finns de kvar i minnet tills programkörningen är klar. Detta kan orsaka problem med att minnet är slut.
- Data kan ändras med vilken funktion som helst. Alla påståenden som skrivs i programmet kan ändra värdet på den globala variabeln. Detta kan ge oförutsägbara resultat i miljöer med flera uppgifter.
- Om globala variabler avbryts på grund av kodrefaktorering, måste du ändra alla moduler där de anropas.
Nackdelar med att använda lokala variabler
- Felsökningsprocessen för en lokal variabel är ganska knepig.
- Vanlig data som krävs för att skickas upprepade gånger eftersom datadelning inte är möjlig mellan moduler.
- De har en mycket begränsad omfattning.
Vad är mer användbart?
Den lokala och globala variabeln är lika viktig när du skriver ett program på vilket språk som helst. Ett stort antal av den globala variabeln kan dock uppta ett stort minne. En oönskad förändring av globala variabler har blivit svår att identifiera. Därför är det tillrådligt att undvika att deklarera oönskade globala variabler.