logo

Verschil tussen lokale variabele en globale variabele

Variabelen in elke programmeertaal spelen een cruciale rol. Variabelen worden op basis van hun bereik geclassificeerd in Globale variabelen en Lokale variabelen. Het belangrijkste verschil tussen globale en lokale variabelen is dat globale variabelen globaal toegankelijk zijn in het hele programma, terwijl lokale variabelen alleen toegankelijk zijn binnen de functie of het blok waarin ze zijn gedefinieerd. In dit onderwerp zullen we eerst begrijpen wat de variabelen en reikwijdte zijn, samen met lokale variabelen, globale variabelen en vervolgens de verschillen tussen beide variabelen.

orakeltafel maken
Lokale variabele versus globale variabele

Wat is een variabele?

Een variabele is een naam die aan een geheugenlocatie wordt gegeven om waarden in een computerprogramma op te slaan. Het wordt gebruikt om informatie op te slaan waarnaar in een programma kan worden verwezen en die kan worden gemanipuleerd.

We kunnen elke naam voor de variabele kiezen, maar deze moet de programmeersemantiek volgen. Zoals het ook kan zijn , a, b, x, y, z, sub, div, totaal, gemiddelde, etc .

Laten we zeggen dat er twee waarden zijn, 10 en 20, die we willen opslaan en gebruiken in ons programma. Hiervoor moeten we een variabele gebruiken en we zullen de onderstaande stappen uitvoeren:

  • Eerst zullen we een variabele met een geschikte naam maken of declareren.
  • Wijs deze waarden toe aan de variabelen om ze op te slaan.
  • Zodra deze waarden zijn opgeslagen, kunnen we deze variabelen met hun naam in ons programma gebruiken.
Lokale variabele versus globale variabele

Zoals we in de bovenstaande afbeelding kunnen zien, zijn er twee geheugenslots, 001 en 002, en we hebben deze locaties namen gegeven als A en B. A bevat 10 en B bevat 20.

Verschillende programmeertalen hebben verschillende manieren om de variabele te declareren. In de C-taal kunnen we de variabele bijvoorbeeld op de volgende manier declareren:

Syntaxis: (syntaxis van variabeledeclaraties in C-taal)

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

Voorbeeld:

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

Reikwijdte van variabele

Elke variabele is gedefinieerd en kan binnen zijn bereik worden gebruikt en bepaalt in welk programma deze variabele kan worden gebruikt. Het bereik betekent de levensduur van die variabele. Dit betekent dat de variabele alleen toegankelijk of zichtbaar is binnen zijn bereik.

De reikwijdte van variabelen kan worden gedefinieerd met hun declaratie, en variabelen worden hoofdzakelijk op twee manieren gedeclareerd:

    Globale variabele:Buiten alle functiesLokale variabele:Binnen een functieblok:

Wat is een globale variabele?

  • Globale variabelen zijn variabelen die buiten alle functies of blokken worden gedeclareerd en die globaal in een programma toegankelijk zijn.
  • Het is toegankelijk via elke functie die in het programma aanwezig is.
  • Zodra we een globale variabele declareren, kan de waarde ervan worden gevarieerd, zoals gebruikt bij verschillende functies.
  • De levensduur van de globale variabele duurt totdat het programma wordt uitgevoerd. Deze variabelen worden opgeslagen op vaste geheugenlocaties die door de compiler worden opgegeven en worden niet automatisch opgeschoond.
  • Globale variabelen worden meestal gebruikt bij het programmeren en zijn handig in gevallen waarin alle functies toegang moeten hebben tot dezelfde gegevens.

Voorbeeld:

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

In het bovenstaande voorbeeld zijn a en b de globale variabelen.

Voordelen van globale variabele

  • Globale variabelen zijn toegankelijk voor alle functies die in het programma aanwezig zijn.
  • Er is slechts één aangifte vereist.
  • Erg handig als alle functies toegang hebben tot dezelfde gegevens.

Nadelen van globale variabele

  • De waarde van een globale variabele kan per ongeluk worden gewijzigd, omdat deze door elke functie in het programma kan worden gebruikt.
  • Als we een groot aantal globale variabelen gebruiken, is de kans op het genereren van fouten in het programma groot.

Wat is een lokale variabele?

    Variabelen die binnen of binnen een functieblok worden gedeclareerd, worden lokale variabelen genoemd.
  • Deze variabelen zijn alleen toegankelijk binnen de functie waarin ze zijn gedeclareerd.
  • De levensduur van de lokale variabele ligt alleen binnen zijn functie, wat betekent dat de variabele bestaat totdat de functie wordt uitgevoerd. Zodra de functie-uitvoering is voltooid, worden lokale variabelen vernietigd en bestaan ​​ze niet langer buiten de functie.
  • De reden voor de beperkte reikwijdte van lokale variabelen is dat lokale variabelen worden opgeslagen in de stapel, die dynamisch van aard is en automatisch de daarin opgeslagen gegevens opschoont.
  • Maar door de variabele statisch te maken met het trefwoord 'statisch', kunnen we de waarde van de lokale variabele behouden.

Voorbeeld:

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

In het bovenstaande voorbeeld hebben we x en y twee variabelen binnen de hoofdfunctie gedeclareerd. Dit zijn dus lokale variabelen.

Voordelen van lokale variabele

  • Dezelfde naam van een lokale variabele kan in verschillende functies worden gebruikt, omdat deze alleen wordt herkend door de functie waarin deze wordt gedeclareerd.
  • Lokale variabelen gebruiken alleen geheugen gedurende de beperkte tijd dat de functie wordt uitgevoerd; daarna kan dezelfde geheugenlocatie opnieuw worden gebruikt.

Nadelen van lokale variabelen

  • Het bereik van de lokale variabele is beperkt tot alleen zijn functie en kan niet door andere functies worden gebruikt.
  • Het delen van gegevens door de lokale variabele is niet toegestaan.

Vergelijkingsdiagram tussen globale variabele en lokale variabele

Globale variabele Lokale variabele
Globale variabelen worden buiten alle functieblokken gedeclareerd. Lokale variabelen worden gedeclareerd binnen een functieblok.
De reikwijdte blijft gedurende het hele programma bestaan. De reikwijdte is beperkt en blijft alleen binnen de functie waarin ze worden gedeclareerd.
Elke verandering in de globale variabele heeft invloed op het hele programma, waar het ook wordt gebruikt. Elke wijziging in de lokale variabele heeft geen invloed op andere functies van het programma.
Er bestaat een globale variabele in het programma gedurende de gehele tijd dat het programma wordt uitgevoerd. Er wordt een lokale variabele gemaakt wanneer de functie wordt uitgevoerd, en zodra de uitvoering is voltooid, wordt de variabele vernietigd.
Het is in het hele programma toegankelijk via alle functies die in het programma aanwezig zijn. Het is alleen toegankelijk voor de functie-instructies waarin het is gedeclareerd, en niet voor de andere functies.
Als de globale variabele niet is geïnitialiseerd, heeft deze standaard nul nodig. Als de lokale variabele niet is geïnitialiseerd, wordt standaard de garbage-waarde gebruikt.
Globale variabelen worden opgeslagen in het datasegment van het geheugen. Lokale variabelen worden opgeslagen in een stapel in het geheugen.
We kunnen niet veel variabelen met dezelfde naam declareren. We kunnen verschillende variabelen declareren met dezelfde naam maar in andere functies.

Voorbeelden om de verschillen tussen lokale en globale variabelen te begrijpen

Laten we nu voorbeelden in verschillende programmeertalen begrijpen om het verschil tussen lokale en globale variabelen beter te begrijpen.

Lokaal versus mondiaal in C

Voorbeeld 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); } 

Uitgang:

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

Zoals we in het bovenstaande programma kunnen zien, hebben we genomen A En B globale variabelen waartoe toegang wordt verkregen in verschillende functies zoals Add() en main(). Terwijl er ook lokale variabelen zijn zoals c, d, Ans1 en Ans2, waartoe alleen toegang wordt verkregen door de functies waarin ze worden gedeclareerd.

Als we c- en d-variabelen buiten de Mul()-functie proberen te gebruiken, zullen ze als nieuwe variabelen worden gebruikt. Zoals we hebben laten zien door c ook in de functie main() op te nemen, wordt deze behandeld als een nieuwe variabele.

recursie in Java

Lokaal vs. Globaal in Python

Voorbeeld 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 

Uitgang:

 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. 

In het bovenstaande programma hebben we één globale variabele v1 en één lokale variabele v2 genomen. Omdat v1 globaal is, is deze gemakkelijk toegankelijk in elke functie, en v2 is lokaal; het wordt alleen gebruikt binnen de aangegeven functie. Maar als we v1 in func1 proberen te gebruiken, geeft dit een foutmelding. Laten we het onderstaande voorbeeld bekijken:

Voorbeeld-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 

Als we proberen toegang te krijgen tot v1, is deze eenvoudig toegankelijk in fun1 en func2. Maar als we proberen toegang te krijgen tot v2 buiten zijn functie, wat betekent in func2, zal het de runtime-fout geven. We krijgen de onderstaande uitvoer na het uitvoeren van de bovenstaande code:

Runtime-fout:

 NameError: global name 'v2' is not defined 

Uitgang:

 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. 

Lokaal vs. Globale variabele in Java

In Java bestaat er geen concept van globale variabelen; aangezien Java een objectgeoriënteerde programmeertaal is, maakt alles deel uit van de klasse. Maar als we een variabele globaal toegankelijk willen maken, kunnen we deze statisch maken door a te gebruiken statisch Trefwoord.

 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)); } } 

Uitgang:

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

In het bovenstaande programma hebben we één lokale variabele of niet-statische variabele en één statische variabele gebruikt. De lokale variabele is toegankelijk via het object van de klasse Demo, terwijl de statische variabele toegankelijk is via de naam van de klasse.