logo

Razlika između lokalne varijable i globalne varijable

Varijable u bilo kojem programskom jeziku imaju ključnu ulogu. Varijable su klasificirane na globalne varijable i lokalne varijable na temelju njihovog opsega. Glavna razlika između globalnih i lokalnih varijabli je u tome što se globalnim varijablama može pristupiti globalno u cijelom programu, dok se lokalnim varijablama može pristupiti samo unutar funkcije ili bloka u kojem su definirane. U ovoj temi prvo ćemo razumjeti što su varijable i opseg, zajedno s lokalnim varijablama, globalnim varijablama, a zatim i razlikama između obje varijable.

Lokalna varijabla vs globalna varijabla

Što je varijabla?

Varijabla je naziv koji se daje memorijskoj lokaciji za pohranu vrijednosti u računalni program. Koristi se za pohranjivanje informacija koje se mogu referencirati i manipulirati u programu.

Možemo odabrati bilo koje ime za varijablu, ali ono mora slijediti semantiku programiranja. Takav kakav može biti , a, b, x, y, z, pod, div, ukupno, prosjek itd .

moj flixer

Recimo da postoje dvije vrijednosti, 10 i 20, koje želimo pohraniti i koristiti u našem programu. Za ovo trebamo upotrijebiti varijablu, a mi ćemo napraviti sljedeće korake:

  • Prvo ćemo kreirati ili deklarirati varijablu s odgovarajućim imenom.
  • Dodijelite te vrijednosti varijablama da biste ih pohranili.
  • Nakon što su te vrijednosti pohranjene, možemo koristiti te varijable s njihovim imenom u našem programu.
Lokalna varijabla vs globalna varijabla

Kao što možemo vidjeti na gornjoj slici, postoje dva memorijska utora, 001 i 002, a mi smo tim lokacijama dali imena kao A i B. A sadrži 10, a B 20.

Različiti programski jezici imaju različite načine za deklariranje varijable. Na primjer, u jeziku C, možemo deklarirati varijablu na sljedeći način:

Sintaksa: (Sintaksa deklaracije varijable u jeziku C)

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

Primjer:

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

Opseg varijable

Svaka varijabla je definirana i može se koristiti unutar svog opsega i određuje u kojem je programu ova varijabla dostupna za korištenje. Opseg znači životni vijek te varijable. To znači da se varijabli može pristupiti ili vidljiva samo unutar njenog opsega.

Opseg varijabli može se definirati njihovom deklaracijom, a varijable se deklariraju uglavnom na dva načina:

    Globalna varijabla:Izvan svih funkcijaLokalna varijabla:Unutar funkcijskog bloka:

Što je globalna varijabla?

  • Globalne varijable su one varijable koje su deklarirane izvan svih funkcija ili blokova i može im se pristupiti globalno u programu.
  • Može mu se pristupiti bilo kojom funkcijom koja je prisutna u programu.
  • Nakon što deklariramo globalnu varijablu, njezina se vrijednost može mijenjati kako se koristi s različitim funkcijama.
  • Životni vijek globalne varijable postoji dok se program ne izvrši. Ove varijable su pohranjene na fiksnim memorijskim lokacijama koje je dao prevoditelj i ne čiste se automatski.
  • Globalne varijable se uglavnom koriste u programiranju i korisne su u slučajevima kada sve funkcije moraju pristupiti istim podacima.

Primjer:

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

U gornjem primjeru, a i b su globalne varijable.

popis za inicijalizaciju pythona

Prednosti globalne varijable

  • Globalnim varijablama mogu pristupiti sve funkcije prisutne u programu.
  • Potrebna je samo jedna deklaracija.
  • Vrlo korisno ako sve funkcije pristupaju istim podacima.

Nedostaci globalne varijable

  • Vrijednost globalne varijable može se slučajno promijeniti jer je može koristiti bilo koja funkcija u programu.
  • Ako koristimo veliki broj globalnih varijabli, tada postoji velika vjerojatnost generiranja pogreške u programu.

Što je lokalna varijabla?

    Varijable koje su deklarirane unutar ili unutar funkcijskog bloka poznate su kao lokalne varijable.
  • Ovim se varijablama može pristupiti samo unutar funkcije u kojoj su deklarirane.
  • Životni vijek lokalne varijable je samo unutar njene funkcije, što znači da varijabla postoji dok se funkcija ne izvrši. Nakon što je izvršenje funkcije dovršeno, lokalne varijable se uništavaju i više ne postoje izvan funkcije.
  • Razlog ograničenog opsega lokalnih varijabli je taj što su lokalne varijable pohranjene u stog, koji je dinamičke prirode i automatski čisti podatke pohranjene unutar njega.
  • Ali ako varijablu učinimo statičnom s ključnom riječi 'static', možemo zadržati vrijednost lokalne varijable.

Primjer:

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

U gornjem primjeru, deklarirali smo x i y dvije varijable unutar glavne funkcije. Stoga su to lokalne varijable.

Prednosti lokalne varijable

  • Isto ime lokalne varijable može se koristiti u različitim funkcijama jer ga prepoznaje samo funkcija u kojoj je deklarirano.
  • Lokalne varijable koriste memoriju samo ograničeno vrijeme kada se funkcija izvršava; nakon što se ista memorijska lokacija može ponovno upotrijebiti.

Nedostaci lokalnih varijabli

  • Opseg lokalne varijable ograničen je samo na njezinu funkciju i ne mogu je koristiti druge funkcije.
  • Dijeljenje podataka putem lokalne varijable nije dopušteno.

Tablica usporedbe između globalne varijable i lokalne varijable

Globalna varijabla Lokalna varijabla
Globalne varijable su deklarirane izvan svih funkcijskih blokova. Lokalne varijable su deklarirane unutar funkcijskog bloka.
Opseg ostaje tijekom cijelog programa. Opseg je ograničen i ostaje samo unutar funkcije u kojoj su deklarirani.
Svaka promjena globalne varijable utječe na cijeli program, bez obzira gdje se koristi. Svaka promjena u lokalnoj varijabli ne utječe na druge funkcije programa.
Globalna varijabla postoji u programu cijelo vrijeme dok se program izvršava. Lokalna varijabla se stvara kada se funkcija izvrši, a kada je izvođenje završeno, varijabla se uništava.
Može mu se pristupiti kroz cijeli program pomoću svih funkcija prisutnih u programu. Može mu se pristupiti samo naredbama funkcije u kojima je deklariran, a ne drugim funkcijama.
Ako globalna varijabla nije inicijalizirana, prema zadanim postavkama uzima nulu. Ako lokalna varijabla nije inicijalizirana, prema zadanim postavkama uzima vrijednost smeća.
Globalne varijable pohranjuju se u podatkovni segment memorije. Lokalne varijable pohranjuju se u hrpu u memoriji.
Ne možemo deklarirati mnogo varijabli s istim imenom. Možemo deklarirati različite varijable s istim imenom, ali u drugim funkcijama.

Primjeri za razumijevanje razlika između lokalne i globalne varijable

Razmotrimo sada primjere u različitim programskim jezicima kako bismo bolje razumjeli razliku između lokalnih i globalnih varijabli.

Lokalno protiv globalnog u C

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

Izlaz:

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

Kao što vidimo u gore navedenom programu, poduzeli smo a i b globalne varijable kojima se pristupa u različitim funkcijama kao što su Add() i main(). Dok postoje i lokalne varijable kao što su c, d, Ans1 i Ans2, kojima pristupaju samo one funkcije u kojima su deklarirane.

Ako pokušamo koristiti c i d varijable izvan funkcije Mul(), one će se koristiti kao nove varijable. Kao što smo pokazali uzimajući c iu funkciji main(), on se tretira kao nova varijabla.

Lokalni vs. Globalno u Pythonu

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

Izlaz:

pretvaranje int u dvostruku Javu
 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. 

U gornjem programu uzeli smo jednu globalnu varijablu v1 i jednu lokalnu varijablu v2. Budući da je v1 globalan, može mu se lako pristupiti u bilo kojoj funkciji, a v2 je lokalni; koristi se samo unutar svoje deklarirane funkcije. Ali ako pokušamo koristiti v1 u funkciji1, to će dati pogrešku. Pogledajmo donji primjer:

Primjer-2

aplet
 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 

Ako pokušamo pristupiti v1, lako joj se može pristupiti u fun1 i func2. Ali ako pokušamo pristupiti v2 izvan njegove funkcije, što znači u func2, to će dati pogrešku vremena izvođenja. Nakon izvršenja gornjeg koda dobit ćemo rezultat u nastavku:

Pogreška tijekom izvođenja:

 NameError: global name 'v2' is not defined 

Izlaz:

 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. 

Lokalni vs. Globalna varijabla u Javi

U Javi ne postoji koncept globalnih varijabli; budući da je Java objektno orijentirani programski jezik, sve je dio klase. Ali ako želimo učiniti varijablu globalno dostupnom, možemo je učiniti statičnom pomoću a statički Ključna riječ.

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

Izlaz:

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

U gornjem programu koristili smo jednu lokalnu varijablu ili nestatičku varijablu i jednu statičku varijablu. Lokalnoj varijabli može se pristupiti korištenjem objekta Demo klase, dok se statičkoj varijabli može pristupiti korištenjem naziva klase.