Variabler i ethvert programmeringssprog har en afgørende rolle. Variabler klassificeres i globale variable og lokale variabler baseret på deres omfang. Den største forskel mellem globale og lokale variabler er, at globale variabler kan tilgås globalt i hele programmet, hvorimod lokale variabler kun kan tilgås inden for den funktion eller blok, hvori de er defineret. I dette emne vil vi først forstå, hvad variablerne og omfanget er, sammen med lokale variabler, globale variabler og derefter forskelle mellem begge variabler.
np.log
Hvad er en variabel?
En variabel er et navn givet til en hukommelsesplacering for at gemme værdier i et computerprogram. Det bruges til at gemme information, der kan refereres til og manipuleres i et program.
Vi kan vælge et hvilket som helst navn til variablen, men den skal følge programmeringssemantikken. Sådan som det kan være , a, b, x, y, z, sub, div, total, gns. osv .
Lad os sige, at der er to værdier, 10 og 20, som vi ønsker at gemme og bruge i vores program. Til dette skal vi bruge en variabel, og vi vil gøre følgende trin:
- Først vil vi oprette eller erklære en variabel med et passende navn.
- Tildel disse værdier til variablerne for at gemme dem.
- Når disse værdier er lagre, kan vi bruge disse variable med deres navn i vores program.
Som vi kan se på ovenstående billede, er der to hukommelsespladser, 001 og 002, og vi har givet navne til disse steder som A og B. A indeholder 10, og B indeholder 20.
Forskellige programmeringssprog har forskellige måder at erklære variablen på. For eksempel i C-sprog kan vi erklære variablen på følgende måde:
Syntaks: (syntaks for variabel erklæring i C-sprog)
datatype v1, v2, v3,....;
Eksempel:
#include void main(){ int a; int b; int sum; }
Variablens omfang
Hver variabel er defineret og kan bruges inden for sit omfang og bestemmer, hvori programmet denne variabel er tilgængelig til brug. Omfanget betyder den pågældende variabels levetid. Det betyder, at variablen kun kan tilgås eller vises inden for dens omfang.
Omfanget af variabler kan defineres med deres erklæring, og variabler deklareres hovedsageligt på to måder:
Hvad er en global variabel?
- Globale variabler er de variabler, der er erklæret uden for alle funktioner eller blokke og kan tilgås globalt i et program.
- Det kan tilgås af enhver funktion, der findes i programmet.
- Når vi erklærer en global variabel, kan dens værdi varieres som brugt med forskellige funktioner.
- Levetiden for den globale variabel eksisterer, indtil programmet kører. Disse variabler gemmes i faste hukommelsesplaceringer givet af compileren og rydder ikke automatisk op.
- Globale variabler bruges mest i programmering og nyttige i tilfælde, hvor alle funktioner skal have adgang til de samme data.
Eksempel:
#include int a=50, b=40; void main() { printf('a = %d and b=%d',a,b); }
I ovenstående eksempel er a og b de globale variable.
Fordele ved Global Variable
- Globale variabler kan tilgås af alle funktionerne i programmet.
- Der kræves kun en enkelt erklæring.
- Meget nyttigt, hvis alle funktioner har adgang til de samme data.
Ulemper ved Global Variable
- Værdien af en global variabel kan ændres ved et uheld, da den kan bruges af enhver funktion i programmet.
- Hvis vi bruger et stort antal globale variable, så er der stor chance for fejlgenerering i programmet.
Hvad er en lokal variabel?
- Disse variabler kan kun tilgås inden for den funktion, hvori de er erklæret.
- Levetiden for den lokale variabel er kun inden for dens funktion, hvilket betyder, at variablen eksisterer, indtil funktionen udføres. Når funktionsudførelsen er afsluttet, ødelægges lokale variabler og eksisterer ikke længere uden for funktionen.
- Årsagen til det begrænsede omfang af lokale variabler er, at lokale variabler er gemt i stakken, som er dynamisk af natur og automatisk rydder op i de data, der er gemt i den.
- Men ved at gøre variablen statisk med 'static' nøgleord, kan vi bevare værdien af lokal variabel.
Eksempel:
#include void main() { int x=50, y=40; printf('x = %d and y=%d',x, y); }
I ovenstående eksempel har vi erklæret x og y for to variable inde i hovedfunktionen. Derfor er disse lokale variabler.
Fordele ved Local Variable
- Det samme navn på en lokal variabel kan bruges i forskellige funktioner, da den kun genkendes af den funktion, hvori den er erklæret.
- Lokale variabler bruger kun hukommelse i den begrænsede tid, hvor funktionen udføres; derefter kan den samme hukommelsesplacering genbruges.
Ulemper ved lokale variabler
- Omfanget af den lokale variabel er begrænset til dens funktion og kan ikke bruges af andre funktioner.
- Datadeling med den lokale variabel er ikke tilladt.
Sammenligningsdiagram mellem global variabel og lokal variabel
Global variabel | Lokal variabel |
---|---|
Globale variable erklæres uden for alle funktionsblokkene. | Lokale variable er deklareret i en funktionsblok. |
Omfanget forbliver gennem hele programmet. | Omfanget er begrænset og forbliver kun inden for den funktion, hvor de er deklareret. |
Enhver ændring i den globale variabel påvirker hele programmet, uanset hvor det bruges. | Enhver ændring i den lokale variabel påvirker ikke andre funktioner i programmet. |
En global variabel eksisterer i programmet i hele programmets afviklingstid. | En lokal variabel oprettes, når funktionen udføres, og når udførelsen er færdig, ødelægges variablen. |
Det kan tilgås i hele programmet af alle de funktioner, der findes i programmet. | Det kan kun tilgås af funktionssætningerne, hvori det er erklæret, og ikke af de andre funktioner. |
Hvis den globale variabel ikke initialiseres, tager den som standard nul. | Hvis den lokale variabel ikke initialiseres, tager den skraldværdien som standard. |
Globale variabler gemmes i datasegmentet i hukommelsen. | Lokale variabler gemmes i en stak i hukommelsen. |
Vi kan ikke erklære mange variabler med samme navn. | Vi kan erklære forskellige variabler med samme navn, men i andre funktioner. |
Eksempler til at forstå forskelle mellem lokal og global variabel
Lad os nu forstå eksempler på forskellige programmeringssprog for bedre at forstå forskellen mellem lokale og globale variabler.
Lokal vs Global i C
Eksempel-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 ovenstående program, har vi taget -en og b globale variabler, der tilgås i forskellige funktioner såsom Add() og main(). Mens der også er lokale variabler såsom c, d, Ans1 og Ans2, som kun er tilgået af de funktioner, hvor de er erklæret.
Hvis vi forsøger at bruge c- og d-variabler uden for Mul()-funktionen, vil de blive brugt som nye variable. Som vi har vist ved også at tage c i main()-funktionen, behandles den som en ny variabel.
kort i java
Lokal vs. Global i Python
Eksempel-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 ovenstående program har vi taget en global variabel v1 og en lokal variabel v2. Da v1 er global, kan den let tilgås i enhver funktion, og v2 er lokal; den bruges kun inden for dens erklærede funktion. Men hvis vi forsøger at bruge v1 i func1, vil det give en fejl. Lad os se nedenstående eksempel:
Eksempel-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
Hvis vi prøver at få adgang til v1, kan den nemt tilgås i fun1 og func2. Men hvis vi forsøger at få adgang til v2 uden for dens funktion, hvilket betyder i func2, vil det give runtime-fejlen. Vi får nedenstående output efter at have udført ovenstående kode:
Kørselsfejl:
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 er der ikke noget koncept for globale variabler; da Java er et objektorienteret programmeringssprog, er alt en del af klassen. Men hvis vi ønsker at gøre en variabel globalt tilgængelig, kan vi gøre den statisk ved at bruge en statisk Søgeord.
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 ovenstående program har vi brugt en lokal variabel eller ikke-statisk variabel og en statisk variabel. Den lokale variabel kan tilgås ved at bruge objektet i Demo-klassen, hvorimod den statiske variabel kan tilgås ved at bruge navnet på klassen.