logo

Rozdiel medzi lokálnou premennou a globálnou premennou

Premenné v akomkoľvek programovacom jazyku zohrávajú kľúčovú úlohu. Premenné sú klasifikované na globálne premenné a lokálne premenné na základe ich rozsahu. Hlavný rozdiel medzi globálnymi a lokálnymi premennými je v tom, že ku globálnym premenným je možné pristupovať globálne v celom programe, zatiaľ čo k lokálnym premenným je možné pristupovať iba v rámci funkcie alebo bloku, v ktorom sú definované. V tejto téme najprv pochopíme, čo sú premenné a rozsah, spolu s lokálnymi premennými, globálnymi premennými a potom rozdiely medzi oboma premennými.

Lokálna premenná vs. Globálna premenná

Čo je to premenná?

Premenná je názov daný pamäťovému miestu na ukladanie hodnôt v počítačovom programe. Používa sa na ukladanie informácií, na ktoré možno v programe odkazovať a manipulovať s nimi.

Názov premennej si môžeme zvoliť ľubovoľný, ale musí sa riadiť sémantikou programovania. Taká, aká môže byť , a, b, x, y, z, sub, div, total, avg, atď .

Povedzme, že existujú dve hodnoty, 10 a 20, ktoré chceme uložiť a použiť v našom programe. Na to musíme použiť premennú a urobíme nasledujúce kroky:

  • Najprv vytvoríme alebo deklarujeme premennú s vhodným názvom.
  • Priraďte tieto hodnoty k premenným, aby ste ich uložili.
  • Keď sú tieto hodnoty uložené, môžeme tieto premenné použiť s ich názvom v našom programe.
Lokálna premenná vs. Globálna premenná

Ako môžeme vidieť na obrázku vyššie, existujú dva pamäťové sloty, 001 a 002, a tieto miesta sme pomenovali ako A a B. A obsahuje 10 a B obsahuje 20.

význam dhl

Rôzne programovacie jazyky majú rôzne spôsoby, ako deklarovať premennú. Napríklad v jazyku C môžeme premennú deklarovať nasledujúcim spôsobom:

Syntax: (syntax deklarácie premennej v jazyku C)

1 z 1000
 datatype v1, v2, v3,....; 

Príklad:

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

Rozsah premennej

Každá premenná je definovaná a môže byť použitá v rámci svojho rozsahu a určuje, v ktorom programe je táto premenná dostupná na použitie. Rozsah znamená životnosť tejto premennej. Znamená to, že premenná je prístupná alebo viditeľná iba v rámci jej rozsahu.

Rozsah premenných je možné definovať ich deklaráciou a premenné sa deklarujú hlavne dvoma spôsobmi:

    Globálna premenná:Mimo všetkých funkciíMiestna premenná:V rámci funkčného bloku:

Čo je to globálna premenná?

  • Globálne premenné sú tie premenné, ktoré sú deklarované mimo všetkých funkcií alebo blokov a je možné k nim v programe pristupovať globálne.
  • Dá sa k nemu dostať akoukoľvek funkciou prítomnou v programe.
  • Keď deklarujeme globálnu premennú, jej hodnota sa môže meniť tak, ako sa používa s rôznymi funkciami.
  • Životnosť globálnej premennej existuje, kým sa program nespustí. Tieto premenné sú uložené na pevných pamäťových miestach zadaných kompilátorom a automaticky sa nevyčistia.
  • Globálne premenné sa väčšinou používajú pri programovaní a sú užitočné v prípadoch, keď všetky funkcie potrebujú prístup k rovnakým údajom.

Príklad:

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

Vo vyššie uvedenom príklade sú a a b globálne premenné.

Výhody globálnej premennej

  • Ku globálnym premenným majú prístup všetky funkcie prítomné v programe.
  • Vyžaduje sa iba jedno vyhlásenie.
  • Veľmi užitočné, ak všetky funkcie pristupujú k rovnakým údajom.

Nevýhody globálnej premennej

  • Hodnota globálnej premennej sa môže náhodne zmeniť, pretože ju môže použiť akákoľvek funkcia v programe.
  • Ak použijeme veľké množstvo globálnych premenných, potom je veľká šanca na generovanie chýb v programe.

Čo je to lokálna premenná?

    Premenné, ktoré sú deklarované vo funkčnom bloku alebo v ňom, sú známe ako lokálne premenné.
  • K týmto premenným je možné pristupovať iba v rámci funkcie, v ktorej sú deklarované.
  • Životnosť lokálnej premennej je len v rámci jej funkcie, čo znamená, že premenná existuje, kým sa funkcia nevykoná. Po dokončení vykonávania funkcie sa lokálne premenné zničia a už neexistujú mimo funkcie.
  • Dôvodom obmedzeného rozsahu lokálnych premenných je, že lokálne premenné sú uložené v zásobníku, ktorý má dynamický charakter a automaticky čistí dáta v ňom uložené.
  • Ale nastavením premennej na statickú s kľúčovým slovom 'statický' môžeme zachovať hodnotu lokálnej premennej.

Príklad:

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

Vo vyššie uvedenom príklade sme deklarovali x a y dve premenné vnútri hlavnej funkcie. Ide teda o lokálne premenné.

Výhody lokálnej premennej

  • Rovnaký názov lokálnej premennej možno použiť v rôznych funkciách, pretože ho rozpoznáva iba funkcia, v ktorej je deklarovaná.
  • Lokálne premenné využívajú pamäť iba na obmedzený čas, kedy je funkcia vykonaná; potom je možné znova použiť to isté miesto v pamäti.

Nevýhody lokálnych premenných

  • Rozsah lokálnej premennej je obmedzený len na jej funkciu a nemôžu byť použité inými funkciami.
  • Zdieľanie údajov lokálnou premennou nie je povolené.

Porovnávacia tabuľka medzi globálnou premennou a lokálnou premennou

Globálna premenná Miestna premenná
Globálne premenné sú deklarované mimo všetkých funkčných blokov. Lokálne premenné sú deklarované v rámci funkčného bloku.
Rozsah zostáva počas celého programu. Rozsah je obmedzený a zostáva iba v rámci funkcie, v ktorej sú deklarované.
Akákoľvek zmena globálnej premennej ovplyvňuje celý program bez ohľadu na to, kde sa používa. Akákoľvek zmena v lokálnej premennej neovplyvní ostatné funkcie programu.
Globálna premenná existuje v programe po celú dobu vykonávania programu. Lokálna premenná sa vytvorí pri spustení funkcie a po dokončení vykonávania sa premenná zničí.
Je prístupný v rámci programu všetkými funkciami prítomnými v programe. Prístup k nemu môžu mať iba príkazy funkcií, v ktorých je deklarovaný, a nie iné funkcie.
Ak globálna premenná nie je inicializovaná, v predvolenom nastavení trvá nulu. Ak lokálna premenná nie je inicializovaná, v predvolenom nastavení prevezme hodnotu odpadu.
Globálne premenné sú uložené v dátovom segmente pamäte. Lokálne premenné sú uložené v zásobníku v pamäti.
Nemôžeme deklarovať veľa premenných s rovnakým názvom. Môžeme deklarovať rôzne premenné s rovnakým názvom, ale v iných funkciách.

Príklady na pochopenie rozdielov medzi lokálnou a globálnou premennou

Teraz pochopme príklady v rôznych programovacích jazykoch, aby sme lepšie pochopili rozdiel medzi lokálnymi a globálnymi premennými.

filtrovanie pythonu

Miestne verzus globálne v C

Príklad-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); } 

Výkon:

vložiť mysql do
 The addition result is: 120 The Multiplication result is: 200 30 

Ako môžeme vidieť vo vyššie uvedenom programe, vzali sme a a b globálne premenné, ku ktorým sa pristupuje v rôznych funkciách, ako napríklad Add() a main(). Zatiaľ čo existujú aj lokálne premenné ako c, d, Ans1 a Ans2, ku ktorým majú prístup len tie funkcie, v ktorých sú deklarované.

Ak sa pokúsime použiť premenné c a d mimo funkcie Mul(), budú použité ako nové premenné. Ako sme ukázali, ak vezmeme c aj do funkcie main(), považuje sa za novú premennú.

Miestne vs. Globálne v Pythone

Príklad-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 

Výkon:

 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. 

Vo vyššie uvedenom programe sme vzali jednu globálnu premennú v1 a jednu lokálnu premennú v2. Keďže v1 je globálna, dá sa k nej ľahko pristupovať v akejkoľvek funkcii a v2 je lokálna; používa sa iba v rámci svojej deklarovanej funkcie. Ak sa však pokúsime použiť v1 vo funkcii func1, zobrazí sa chyba. Pozrime sa na príklad nižšie:

Príklad-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 

Ak sa pokúsime získať prístup k verzii 1, dá sa ľahko dostať do fun1 a func2. Ak sa však pokúsime o prístup k v2 mimo jej funkcie, čo znamená vo funkcii 2, zobrazí chybu behu. Po vykonaní vyššie uvedeného kódu dostaneme nasledujúci výstup:

Chyba spustenia:

jvm
 NameError: global name 'v2' is not defined 

Výkon:

 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. 

Miestne vs. Globálna premenná v jazyku Java

V Jave neexistuje koncept globálnych premenných; keďže Java je objektovo orientovaný programovací jazyk, všetko je súčasťou triedy. Ak však chceme premennú sprístupniť globálne, môžeme ju urobiť statickou pomocou a statické Kľúčové slovo.

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

Výkon:

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

Vo vyššie uvedenom programe sme použili jednu lokálnu premennú alebo nestatickú premennú a jednu statickú premennú. K lokálnej premennej je možné pristupovať pomocou objektu triedy Demo, zatiaľ čo k statickej premennej je možné pristupovať pomocou názvu triedy.