logo

Skillnaden mellan lokal variabel och global variabel

Variabler i alla programmeringsspråk har en avgörande roll. Variabler klassificeras i Globala variabler och Lokala variabler baserat på deras omfattning. Den största skillnaden mellan globala och lokala variabler är att globala variabler kan nås globalt i hela programmet, medan lokala variabler endast kan nås inom funktionen eller blocket där de är definierade. I det här ämnet kommer vi först att förstå vad som är variablerna och omfattningen, tillsammans med lokala variabler, globala variabler och sedan skillnader mellan båda variablerna.

"bankirens algoritm"
Lokal variabel vs global variabel

Vad är en variabel?

En variabel är ett namn som ges till en minnesplats för att lagra värden i ett datorprogram. Den används för att lagra information som kan refereras och manipuleras i ett program.

Vi kan välja vilket namn som helst för variabeln, men den måste följa programmeringssemantiken. Som det kan vara , a, b, x, y, z, sub, div, totalt, medel, etc .

Låt oss säga att det finns två värden, 10 och 20, som vi vill lagra och använda i vårt program. För detta måste vi använda en variabel, och vi kommer att göra följande steg:

  • Först kommer vi att skapa eller deklarera en variabel med ett lämpligt namn.
  • Tilldela dessa värden till variablerna för att lagra dem.
  • När dessa värden är lagrade kan vi använda dessa variabler med deras namn i vårt program.
Lokal variabel vs global variabel

Som vi kan se i bilden ovan finns det två minnesplatser, 001 och 002, och vi har gett dessa platser namn som A och B. A innehåller 10 och B innehåller 20.

Olika programmeringsspråk har olika sätt att deklarera variabeln. Till exempel, i C-språk, kan vi deklarera variabeln på följande sätt:

Syntax: (Syntax för variabeldeklaration på C-språk)

 datatype v1, v2, v3,....; 

Exempel:

 #include void main(){ int a; int b; int sum; } 

Variabelns omfattning

Varje variabel är definierad och kan användas inom dess räckvidd och bestämmer var i programmet denna variabel är tillgänglig att använda. Omfattningen betyder livslängden för den variabeln. Det betyder att variabeln endast kan nås eller visas inom dess räckvidd.

Variablernas omfattning kan definieras med deras deklaration, och variabler deklareras huvudsakligen på två sätt:

    Global variabel:Utanför alla funktionerLokal variabel:Inom ett funktionsblock:

Vad är en global variabel?

  • Globala variabler är de variabler som deklareras utanför alla funktioner eller block och som kan nås globalt i ett program.
  • Det kan nås av alla funktioner som finns i programmet.
  • När vi väl har deklarerat en global variabel kan dess värde varieras med olika funktioner.
  • Livslängden för den globala variabeln existerar tills programmet körs. Dessa variabler lagras på fasta minnesplatser som ges av kompilatorn och rensar inte automatiskt.
  • Globala variabler används mest i programmering och användbara för fall där alla funktioner behöver komma åt samma data.

Exempel:

 #include int a=50, b=40; void main() { printf('a = %d and b=%d',a,b); } 

I exemplet ovan är a och b de globala variablerna.

Fördelar med Global Variable

  • Globala variabler kan nås av alla funktioner som finns i programmet.
  • Endast en enda deklaration krävs.
  • Mycket användbart om alla funktioner har åtkomst till samma data.

Nackdelar med Global Variable

  • Värdet på en global variabel kan ändras av misstag eftersom den kan användas av alla funktioner i programmet.
  • Om vi ​​använder ett stort antal globala variabler, så finns det en stor chans för felgenerering i programmet.

Vad är en lokal variabel?

    Variabler som deklareras inom eller inuti ett funktionsblock kallas lokala variabler.
  • Dessa variabler kan endast nås inom den funktion där de deklareras.
  • Livstiden för den lokala variabeln är endast inom dess funktion, vilket betyder att variabeln existerar tills funktionen körs. När funktionsexekveringen är klar, förstörs lokala variabler och existerar inte längre utanför funktionen.
  • Anledningen till den begränsade omfattningen av lokala variabler är att lokala variabler lagras i stacken, som är dynamisk till sin natur och automatiskt rensar upp data som lagras i den.
  • Men genom att göra variabeln statisk med 'static' nyckelord, kan vi behålla värdet på lokal variabel.

Exempel:

 #include void main() { int x=50, y=40; printf('x = %d and y=%d',x, y); } 

I exemplet ovan har vi deklarerat x och y två variabler inuti huvudfunktionen. Detta är därför lokala variabler.

Fördelar med Local Variable

  • Samma namn på en lokal variabel kan användas i olika funktioner eftersom den bara känns igen av funktionen i vilken den deklareras.
  • Lokala variabler använder endast minne under den begränsade tiden när funktionen exekveras; efter att samma minnesplats kan återanvändas.

Nackdelar med lokala variabler

  • Omfattningen av den lokala variabeln är begränsad till endast dess funktion och kan inte användas av andra funktioner.
  • Datadelning med den lokala variabeln är inte tillåten.

Jämförelsediagram mellan global variabel och lokal variabel

Global variabel Lokal variabel
Globala variabler deklareras utanför alla funktionsblock. Lokala variabler deklareras inom ett funktionsblock.
Omfattningen finns kvar under hela programmet. Omfattningen är begränsad och förblir endast inom den funktion där de deklareras.
Varje förändring av den globala variabeln påverkar hela programmet, var den än används. Eventuella ändringar i den lokala variabeln påverkar inte andra funktioner i programmet.
En global variabel finns i programmet under hela tiden programmet körs. En lokal variabel skapas när funktionen exekveras, och när exekveringen är klar, förstörs variabeln.
Den kan nås genom hela programmet med alla funktioner som finns i programmet. Den kan endast nås av funktionssatserna där den är deklarerad och inte av de andra funktionerna.
Om den globala variabeln inte initieras tar den noll som standard. Om den lokala variabeln inte initieras tar den skräpvärdet som standard.
Globala variabler lagras i minnets datasegment. Lokala variabler lagras i en stack i minnet.
Vi kan inte deklarera många variabler med samma namn. Vi kan deklarera olika variabler med samma namn men i andra funktioner.

Exempel för att förstå skillnader mellan lokal och global variabel

Låt oss nu förstå exempel på olika programmeringsspråk för att bättre förstå skillnaden mellan lokala och globala variabler.

Lokalt vs Globalt i C

Exempel-1:

 #include // Global variables int a; int b; int Add() { return a + b; } int Mul() { int c=10; //Local Variable int d=20; ////Local Variable return c*d; } void main() { int Ans1, Ans2, c=30;// Local variable a = 50; b = 70; Ans1 = Add(); Ans2= Mul(); printf('The addition result is: %d
',Ans1); printf('The Multiplication result is: %d
',Ans2); printf('%d
', c); } 

Produktion:

 The addition result is: 120 The Multiplication result is: 200 30 

Som vi kan se i programmet ovan har vi tagit a och b globala variabler som nås i olika funktioner som Add() och main(). Medan det också finns lokala variabler som c, d, Ans1 och Ans2, som endast nås av de funktioner där de deklareras.

Om vi ​​försöker använda c- och d-variabler utanför Mul()-funktionen kommer de att användas som nya variabler. Som vi har visat genom att ta c i main()-funktionen också, behandlas den som en ny variabel.

huggorm full huggorm

Lokal vs. Global i Python

Exempel-1:

 v1 = 'Hey, I am Global Variable!, I can be used everywhere in the program.' #globalvariable def func1(): v2='Hey, I am Local Variable!, I can be used within this block only in the program.' #localvariable print(v2) func1() #calling func1 def func2(): print(v1) func2() #callin func2 

Produktion:

 Hey, I am a Local Variable!, I can be used within this block only in the program. Hey, I am Global Variable!, I can be used everywhere in the program. 

I programmet ovan har vi tagit en global variabel v1 och en lokal variabel v2. Eftersom v1 är global kan den lätt nås i vilken funktion som helst, och v2 är lokal; den används endast inom dess deklarerade funktion. Men om vi försöker använda v1 i func1 kommer det att ge ett fel. Låt oss se exemplet nedan:

Exempel-2

 v1 = 'Hey, I am Global Variable!, I can be used everywhere in the program.' #globalvariable def func1(): v2='Hey, I am Local Variable!, I can be used within this block only in the program.' #localvariable print(v2) print(v1) func1() #calling func1 def func2(): print(v1) print(v2) func2() #callin func2 

Om vi ​​försöker komma åt v1 kan den lätt nås i fun1 och func2. Men om vi försöker komma åt v2 utanför dess funktion, vilket betyder i func2, kommer det att ge runtime-felet. Vi kommer att få utdata nedan efter att ha kört ovanstående kod:

Runtime Error:

 NameError: global name 'v2' is not defined 

Produktion:

 Hey, I am Local Variable!, I can be used within this block only in the program. Hey, I am Global Variable!, I can be used everywhere in the program. Hey, I am Global Variable!, I can be used everywhere in the program. 

Lokal vs. Global variabel i Java

I Java finns det inget koncept för globala variabler; eftersom Java är ett objektorienterat programmeringsspråk är allt en del av klassen. Men om vi vill göra en variabel globalt tillgänglig kan vi göra den statisk genom att använda en statisk Nyckelord.

 class Demo { // static variable static int a = 10; // non-static or local variable int b = 20; } public class Main { public static void main(String[] args) { Demo obj = new Demo(); // accessing the non-static variable System.out.println('Value of non-static variable is: ' + (obj.b)); // accessing the static variable System.out.println('Value of static variable is:' + (Demo.a)); } } 

Produktion:

 Value of non-static variable is: 20 Value of static variable is:10 

I programmet ovan har vi använt en lokal variabel eller icke-statisk variabel och en statisk variabel. Den lokala variabeln kan nås genom att använda objektet i Demo-klassen, medan den statiska variabeln kan nås med klassens namn.