logo

Ero paikallisen muuttujan ja globaalin muuttujan välillä

Minkä tahansa ohjelmointikielen muuttujilla on ratkaiseva rooli. Muuttujat luokitellaan laajuuksiensa mukaan globaaleihin muuttujiin ja paikallisiin muuttujiin. Suurin ero globaalien ja paikallisten muuttujien välillä on, että globaaleihin muuttujiin pääsee globaalisti koko ohjelmassa, kun taas paikallisiin muuttujiin pääsee käsiksi vain sen funktion tai lohkon sisällä, jossa ne on määritelty. Tässä aiheessa ymmärrämme ensin, mitkä ovat muuttujat ja laajuus sekä paikalliset muuttujat, globaalit muuttujat ja sitten erot molempien muuttujien välillä.

Paikallinen muuttuja vs globaali muuttuja

Mikä on muuttuja?

Muuttuja on nimi, joka annetaan muistipaikalle arvojen tallentamiseksi tietokoneohjelmaan. Sitä käytetään tallentamaan tietoja, joihin voidaan viitata ja joita voidaan käsitellä ohjelmassa.

Voimme valita muuttujalle minkä tahansa nimen, mutta sen on noudatettava ohjelmoinnin semantiikkaa. Sellainen kuin se voi olla , a, b, x, y, z, ali, div, yhteensä, keskiarvo jne .

Oletetaan, että on kaksi arvoa, 10 ja 20, jotka haluamme tallentaa ja käyttää ohjelmassamme. Tätä varten meidän on käytettävä muuttujaa, ja teemme seuraavat vaiheet:

  • Ensin luodaan tai ilmoitamme muuttujan sopivalla nimellä.
  • Määritä nämä arvot muuttujiin tallentaaksesi ne.
  • Kun nämä arvot ovat tallessa, voimme käyttää näitä muuttujia niiden nimellä ohjelmassamme.
Paikallinen muuttuja vs globaali muuttuja

Kuten yllä olevasta kuvasta näemme, muistipaikkoja on kaksi, 001 ja 002, ja olemme nimenneet näille paikoille A ja B. A sisältää 10 ja B sisältää 20.

muuntaa merkkijonoksi

Eri ohjelmointikielillä on erilaisia ​​tapoja ilmoittaa muuttuja. Esimerkiksi C-kielellä voimme ilmoittaa muuttujan seuraavalla tavalla:

Syntaksi: (Muuttujan määrityssyntaksi C-kielellä)

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

Esimerkki:

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

Muuttujan laajuus

Jokainen muuttuja on määritelty ja sitä voidaan käyttää sen laajuudessa ja määrittää, missä ohjelmassa tämä muuttuja on käytettävissä. Laajuus tarkoittaa muuttujan käyttöikää. Se tarkoittaa, että muuttujaa voidaan käyttää tai se voidaan nähdä vain sen laajuudessa.

Muuttujien laajuus voidaan määritellä niiden ilmoituksella, ja muuttujat ilmoitetaan pääasiassa kahdella tavalla:

    Globaali muuttuja:Kaikkien toimintojen ulkopuolellaPaikallinen muuttuja:Toimilohkon sisällä:

Mikä on globaali muuttuja?

  • Globaalit muuttujat ovat muuttujia, jotka on ilmoitettu kaikkien funktioiden tai lohkojen ulkopuolella ja joita voidaan käyttää globaalisti ohjelmassa.
  • Sitä voidaan käyttää millä tahansa ohjelmassa olevalla toiminnolla.
  • Kun olemme ilmoittaneet globaalin muuttujan, sen arvoa voidaan vaihdella eri funktioiden kanssa.
  • Globaalin muuttujan elinikä on olemassa, kunnes ohjelma suoritetaan. Nämä muuttujat tallennetaan kääntäjän antamiin kiinteisiin muistipaikkoihin, eivätkä ne puhdistu automaattisesti.
  • Globaalimuuttujia käytetään enimmäkseen ohjelmoinnissa ja ne ovat hyödyllisiä tapauksissa, joissa kaikkien toimintojen on päästävä samaan dataan.

Esimerkki:

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

Yllä olevassa esimerkissä a ja b ovat globaaleja muuttujia.

kirjoita json tiedostoon python

Globaalin muuttujan edut

  • Yleisiä muuttujia voidaan käyttää kaikilla ohjelmassa olevilla funktioilla.
  • Vain yksi ilmoitus vaaditaan.
  • Erittäin hyödyllinen, jos kaikki toiminnot käyttävät samoja tietoja.

Globaalin muuttujan haitat

  • Globaalin muuttujan arvoa voidaan muuttaa vahingossa, koska sitä voi käyttää mikä tahansa ohjelman funktio.
  • Jos käytämme suurta määrää globaaleja muuttujia, ohjelmassa on suuri mahdollisuus saada virheitä.

Mikä on paikallinen muuttuja?

    Muuttujia, jotka on ilmoitettu toimintolohkon sisällä tai sisällä, kutsutaan paikallisiksi muuttujiksi.
  • Näitä muuttujia voi käyttää vain siinä funktiossa, jossa ne on ilmoitettu.
  • Paikallisen muuttujan elinikä on vain sen funktion sisällä, mikä tarkoittaa, että muuttuja on olemassa, kunnes toiminto suoritetaan. Kun toiminto on suoritettu loppuun, paikalliset muuttujat tuhoutuvat eivätkä enää ole funktion ulkopuolella.
  • Syynä paikallisten muuttujien rajallisuuteen on se, että paikalliset muuttujat tallennetaan pinoon, joka on luonteeltaan dynaaminen ja puhdistaa automaattisesti siihen tallennetun tiedon.
  • Mutta tekemällä muuttujasta staattinen 'staattinen' avainsanalla, voimme säilyttää paikallisen muuttujan arvon.

Esimerkki:

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

Yllä olevassa esimerkissä olemme ilmoittaneet x ja y kaksi muuttujaa pääfunktion sisällä. Nämä ovat siis paikallisia muuttujia.

Paikallisen muuttujan edut

  • Paikallisen muuttujan samaa nimeä voidaan käyttää eri funktioissa, koska sen tunnistaa vain funktio, jossa se on ilmoitettu.
  • Paikalliset muuttujat käyttävät muistia vain rajoitetun ajan, kun toiminto suoritetaan; tämän jälkeen samaa muistipaikkaa voidaan käyttää uudelleen.

Paikallisten muuttujien haitat

  • Paikallisen muuttujan laajuus rajoittuu vain sen toimintoon, eivätkä muut funktiot voi käyttää sitä.
  • Paikallisen muuttujan tietojen jakaminen ei ole sallittua.

Vertailukaavio globaalin ja paikallisen muuttujan välillä

Globaali muuttuja Paikallinen muuttuja
Globaalit muuttujat ilmoitetaan kaikkien toimintolohkojen ulkopuolella. Paikalliset muuttujat ilmoitetaan funktiolohkossa.
Laajuus säilyy koko ohjelman ajan. Laajuus on rajoitettu ja pysyy vain sen toiminnon sisällä, jossa ne on ilmoitettu.
Kaikki muutokset globaalissa muuttujassa vaikuttavat koko ohjelmaan riippumatta siitä, missä sitä käytetään. Paikallisen muuttujan muutokset eivät vaikuta ohjelman muihin toimintoihin.
Ohjelmassa on globaali muuttuja koko ohjelman suoritusajan. Paikallinen muuttuja luodaan, kun toiminto suoritetaan, ja kun suoritus on valmis, muuttuja tuhoutuu.
Sitä voidaan käyttää koko ohjelman aikana kaikilla ohjelmassa olevilla toiminnoilla. Sitä voidaan käyttää vain funktiolausekkeilla, joissa se on ilmoitettu, ei muiden funktioiden kautta.
Jos globaalia muuttujaa ei ole alustettu, se ottaa oletuksena nollan. Jos paikallista muuttujaa ei ole alustettu, se ottaa oletuksena roskaarvon.
Globaalit muuttujat tallennetaan muistin datasegmenttiin. Paikalliset muuttujat tallennetaan pinoon muistiin.
Emme voi ilmoittaa montaa muuttujaa samalla nimellä. Voimme ilmoittaa erilaisia ​​muuttujia samalla nimellä, mutta muissa funktioissa.

Esimerkkejä paikallisen ja globaalin muuttujan välisten erojen ymmärtämiseksi

Ymmärretään nyt esimerkkejä eri ohjelmointikielistä ymmärtääksemme paremmin paikallisten ja globaalien muuttujien välisiä eroja.

Paikallinen vs globaali C

Esimerkki-1:

voiko abstraktilla luokalla olla konstruktori
 #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); } 

Lähtö:

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

Kuten yllä olevasta ohjelmasta näemme, olemme ottaneet a ja b globaaleja muuttujia, joita käytetään eri funktioissa, kuten Add() ja main(). On olemassa myös paikallisia muuttujia, kuten c, d, Ans1 ja Ans2, joihin pääsevät vain ne funktiot, joissa ne on ilmoitettu.

Jos yritämme käyttää c- ja d-muuttujia Mul()-funktion ulkopuolella, niitä käytetään uusina muuttujina. Kuten olemme osoittaneet ottamalla c myös main()-funktioon, sitä käsitellään uutena muuttujana.

Paikallinen vs. Globaali Pythonissa

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

Lähtö:

 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. 

Yllä olevassa ohjelmassa olemme ottaneet yhden globaalin muuttujan v1 ja yhden paikallisen muuttujan v2. Koska v1 on globaali, sitä voidaan käyttää helposti millä tahansa funktiolla, ja v2 on paikallinen; sitä käytetään vain sen ilmoittaman toiminnon puitteissa. Mutta jos yritämme käyttää v1:tä func1:ssä, se antaa virheen. Katsotaanpa alla olevaa esimerkkiä:

java merkkijono

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

Jos yritämme käyttää v1:tä, siihen pääsee helposti fun1:ssä ja func2:ssa. Mutta jos yritämme käyttää v2:ta sen toiminnon ulkopuolella, mikä tarkoittaa func2:ssa, se antaa ajonaikaisen virheen. Saamme alla olevan tulosteen yllä olevan koodin suorittamisen jälkeen:

Suorituksenaikainen virhe:

 NameError: global name 'v2' is not defined 

Lähtö:

 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. 

Paikallinen vs. Globaali muuttuja Javassa

Javassa ei ole globaalien muuttujien käsitettä; koska Java on olio-ohjelmointikieli, kaikki on osa luokkaa. Mutta jos haluamme tehdä muuttujasta maailmanlaajuisesti saatavilla, voimme tehdä siitä staattisen käyttämällä a staattinen avainsana.

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

Lähtö:

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

Yllä olevassa ohjelmassa olemme käyttäneet yhtä paikallismuuttujaa tai ei-staattista muuttujaa ja yhtä staattista muuttujaa. Paikalliseen muuttujaan pääsee Demo-luokan objektilla, kun taas staattiseen muuttujaan pääsee luokan nimellä.