Ero paikallisen ja globaalin muuttujan välillä

Sisällysluettelo:

Anonim

Mikä on muuttuja?

Muuttuja on nimi, joka määritetään tallennusalueelle, jota ohjelma voi käsitellä. Muuttujatyyppi määrää muuttujan muistin koon ja asettelun.

Se määrittää myös muistialueelle tallennettavien arvojen alueen ja muuttujalle sovellettavien toimintojen luonteen.

Tässä opetusohjelmassa opit

  • Muuttujien laajuus
  • Määritelmä paikallinen muuttuja
  • Määritelmä globaali muuttuja
  • Paikallinen muuttuja vs. globaalit muuttujat
  • Globaalien muuttujien käytön edut
  • Paikallisten muuttujien käytön edut
  • Globaalien muuttujien käytön haitat
  • Paikallisten muuttujien käytön haitat
  • Mikä on hyödyllisempää?

Muuttujien laajuus

Muuttujan laajuus on yksinkertaisesti muuttujan käyttöikä. Se on koodilohko, jossa muuttuja on sovellettavissa tai elossa. Esimerkiksi:

function foo(){var x;}

Ilmoitat muuttujan "x" funktion "foo" sisällä. Kyseisen muuttujan laajuus pysyy toiminnossa, eikä sitä voida käyttää kyseisen toiminnon ulkopuolella.

On kolme paikkaa, joissa muuttujat voidaan ilmoittaa muuttujan ohjelmointikieleksi:

  • Funktion tai lohkon sisällä: Paikalliset muuttujat
  • Kaikkien toimintojen ulkopuolella: Yleiset muuttujat
  • Funktioparametrien määritelmässä: Muodolliset parametrit

TÄRKEÄ ERO

  • Paikallinen muuttuja ilmoitetaan funktion sisällä, kun taas globaali muuttuja ilmoitetaan funktion ulkopuolella.
  • Paikalliset muuttujat luodaan, kun toiminto on aloitettu ja menetetään, kun toiminto päättyy, toisaalta, globaali muuttuja luodaan suorituksen alkaessa ja menetetään, kun ohjelma päättyy.
  • Paikallinen muuttuja ei tarjoa tietojen jakamista, kun taas globaali muuttuja tarjoaa tietojen jakamisen.
  • Paikalliset muuttujat tallennetaan pinoon, kun taas yleinen muuttuja - kiinteään paikkaan, jonka kääntäjä on päättänyt.
  • Parametrien välittäminen vaaditaan paikallisille muuttujille, kun taas globaalille muuttujalle se ei ole välttämätöntä

Paikallinen muuttuja

Paikallinen muuttuja määritellään ohjelmointilohkossa tai aliohjelmissa ilmoitetun muuttujan tyypiksi. Sitä voidaan käyttää vain sen aliohjelman tai koodilohkon sisällä, johon se on ilmoitettu. Paikallinen muuttuja on olemassa, kunnes toiminnon lohko on suorituksessa. Sen jälkeen se tuhoutuu automaattisesti.

Esimerkki paikallisesta muuttujasta

public int add(){int a =4;int b=5;return a+b;}

Tässä a ja b ovat paikallisia muuttujia

Globaali muuttuja

Ohjelman globaali muuttuja on muuttuja, joka on määritelty aliohjelman tai funktion ulkopuolella. Sillä on maailmanlaajuinen laajuus, mikä tarkoittaa, että sillä on arvo koko ohjelman elinkaaren ajan. Siksi sitä voidaan käyttää koko ohjelmassa millä tahansa ohjelmassa määritetyllä toiminnolla, ellei se ole varjossa.

Esimerkki:

int a =4;int b=5;public int add(){return a+b;}

Tässä a ja b ovat globaaleja muuttujia.

Paikallinen muuttuja vs. Globaalit muuttujat

Tässä on joitain perustavanlaatuisia eroja paikallisten ja globaalien muuttujien välillä.

Parametri Paikallinen Maailmanlaajuinen
Soveltamisala Se ilmoitetaan funktion sisällä. Se ilmoitetaan toiminnon ulkopuolella.
Arvo Jos sitä ei alusteta, roska-arvo tallennetaan Jos sitä ei alusteta, nolla tallennetaan oletuksena.
Elinikä Se luodaan, kun toiminto käynnistetään, ja menetetään, kun toiminto päättyy. Se luodaan ennen ohjelman yleisen suorituksen alkamista ja menetetään, kun ohjelma päättyy.
Tietojen jakaminen Tiedon jakaminen ei ole mahdollista, koska paikallisen muuttujan tietoja voidaan käyttää vain yhdellä toiminnolla. Tiedon jakaminen on mahdollista, koska useat toiminnot voivat käyttää samaa globaalia muuttujaa.
Parametrit Parametrien välittäminen vaaditaan, jotta paikalliset muuttujat voivat käyttää toisen funktion arvoa Parametrien välittäminen ei ole välttämätöntä globaalille muuttujalle, koska se näkyy koko ohjelmassa
Muuttujan arvon muuttaminen Kun paikallisen muuttujan arvoa muokataan yhdessä funktiossa, muutokset eivät ole näkyvissä toisessa funktiossa. Kun globaalin muuttujan arvoa muokataan yhdessä toiminnossa, muutokset näkyvät muussa ohjelmassa.
Käyttäjä Paikallisiin muuttujiin pääsee käsitteiden avulla toiminnon sisällä, jossa ne on ilmoitettu. Voit käyttää globaaleja muuttujia millä tahansa ohjelman lauseella.
Muistitallennus Se tallennetaan pinoon, ellei toisin mainita. Se tallennetaan kääntäjän päättämään kiinteään paikkaan.

Globaalien muuttujien käytön edut

  • Voit käyttää globaalia muuttujaa kaikista ohjelman toiminnoista tai moduuleista
  • Sinun on ilmoitettava vain globaali muuttuja kerrallaan moduulien ulkopuolella.
  • Sitä käytetään ihanteellisesti "vakioiden" varastointiin, koska se auttaa pitämään sakeuden.
  • Globaalista muuttujasta on hyötyä, kun useat toiminnot käyttävät samoja tietoja.

Paikallisten muuttujien käytön edut

  • Paikallisten muuttujien käyttö takaa, että muuttujien arvot pysyvät ennallaan tehtävän ollessa käynnissä
  • Jos useat tehtävät muuttavat yhtä muuttujaa, joka on käynnissä samanaikaisesti, tulos voi olla arvaamaton. Mutta sen ilmoittaminen paikalliseksi muuttujaksi ratkaisee tämän ongelman, koska jokainen tehtävä luo oman paikallisen muuttujan esiintymän.
  • Voit antaa paikallisille muuttujille saman nimen eri funktioissa, koska ne tunnistaa vain funktio, johon ne on ilmoitettu.
  • Paikalliset muuttujat poistetaan heti, kun jokin toiminto on ohi, ja vapauttavat sen käyttämän muistitilan.

Globaalien muuttujien käytön haitat

  • Liian monta globaaliksi ilmoitettua muuttujaa ne pysyvät muistissa, kunnes ohjelman toteutus on valmis. Tämä voi aiheuttaa muistin loppumisen ongelman.
  • Tietoja voidaan muokata millä tahansa toiminnolla. Mikä tahansa ohjelmaan kirjoitettu lause voi muuttaa globaalin muuttujan arvoa. Tämä voi antaa arvaamattomia tuloksia monitoimiympäristöissä.
  • Jos globaalit muuttujat lopetetaan koodin uudelleenrakentamisen vuoksi, sinun on vaihdettava kaikki moduulit, joissa niitä kutsutaan.

Paikallisten muuttujien käytön haitat

  • Paikallisen muuttujan virheenkorjausprosessi on melko hankala.
  • Yhteiset tiedot vaaditaan toistuvasti, koska tietojen jakaminen ei ole mahdollista moduulien välillä.
  • Niiden soveltamisala on hyvin rajallinen.

Mikä on hyödyllisempää?

Paikallinen ja globaali muuttuja ovat yhtä tärkeitä kirjoitettaessa ohjelmaa millä tahansa kielellä. Suuri määrä globaalista muuttujasta voi kuitenkin viedä valtavan muistin. Ei-toivottu muutos globaaleihin muuttujiin on vaikea tunnistaa. Siksi on suositeltavaa välttää ei-toivottujen globaalien muuttujien ilmoittamista.