Erinevus kohaliku ja globaalse muutuja vahel

Lang L: none (table-of-contents):

Anonim

Mis on muutuja?

Muutuja on salvestuspiirkonnale omistatud nimi, millega programm saab manipuleerida. Muutuja tüüp määrab muutuja mälu suuruse ja paigutuse.

Samuti määrab see väärtuste vahemiku, mis tuleb sellesse mällu salvestada, ja toimingute laadi, mida saab sellele muutujale rakendada.

Selles õpetuses saate teada

  • Muutujate ulatus
  • Kohaliku muutuja määratlus
  • Globaalse muutuja määratlus
  • Kohalik muutuja vs globaalsed muutujad
  • Globaalsete muutujate kasutamise eelised
  • Kohalike muutujate kasutamise eelised
  • Globaalsete muutujate kasutamise puudused
  • Kohalike muutujate kasutamise puudused
  • Mis on kasulikum?

Muutujate ulatus

Muutuja ulatus on lihtsalt muutuja eluiga. See on koodiplokk, mille all muutuja on rakendatav või elus. Näiteks:

function foo(){var x;}

Deklareerite funktsiooni "foo" sees muutuja "x". Selle muutuja ulatus jääb selle funktsiooni sisse ja seda ei saa kasutada väljaspool seda funktsiooni.

Muutujate deklareerida muutuja programmeerimiskeelt on kolm:

  • Funktsiooni või ploki sees: lokaalsed muutujad
  • Väljaspool kõiki funktsioone: globaalsed muutujad
  • Funktsiooni parameetrite määratluses: Ametlikud parameetrid

PÕHISED erinevused

  • Lokaalne muutuja deklareeritakse funktsiooni sees, globaalne muutuja aga väljaspool funktsiooni.
  • Kohalikud muutujad luuakse siis, kui funktsioon on käivitatud ja funktsiooni lõppemisel kaob, teisest küljest luuakse globaalne muutuja, kui käivitamine algab ja kaob, kui programm lõpeb.
  • Kohalik muutuja ei võimalda andmete jagamist, globaalne muutuja aga andmete jagamist.
  • Kohalikud muutujad salvestatakse virnas, globaalne muutuja aga kindlas kohas, mille kompilaator otsustab.
  • Parameetrite edastamine on vajalik kohalike muutujate jaoks, globaalse muutuja jaoks aga mitte

Kohalik muutuja

Kohalik muutuja on defineeritud kui programmeerimisplokis või alamprogrammides deklareeritud muutuja tüüp. Seda saab kasutada ainult alamprogrammi või koodiploki sees, milles see on deklareeritud. Kohalik muutuja eksisteerib seni, kuni funktsiooni plokk on käivitamisel. Pärast seda hävitatakse see automaatselt.

Kohaliku muutuja näide

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

Siin on 'a' ja 'b' lokaalsed muutujad

Globaalne muutuja

Globaalse muutuja programmis on muutuja määratletud väljaspool alamprogrammi või funktsiooni. Sellel on globaalne ulatus, mis tähendab, et see hoiab oma väärtust kogu programmi vältel. Seega pääseb sellele kogu programmis juurde mis tahes programmis määratletud funktsiooniga, välja arvatud juhul, kui see on varjutatud.

Näide:

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

Siin on 'a' ja 'b' globaalsed muutujad.

Kohalik muutuja vs. Globaalsed muutujad

Siin on mõned põhimõttelised erinevused kohalike ja globaalsete muutujate vahel.

Parameeter Kohalik Ülemaailmne
Reguleerimisala See on deklareeritud funktsiooni sees. See on deklareeritud väljaspool funktsiooni.
Väärtus Kui seda ei lähtestata, salvestatakse prügi väärtus Kui seda ei lähtestata, salvestatakse vaikimisi null.
Eluaeg See luuakse funktsiooni käivitamisel ja kaotatakse funktsioonide lõppemisel. See luuakse enne programmi globaalse käivitamise algust ja kaotatakse, kui programm lõpeb.
Andmete jagamine Andmete jagamine pole võimalik, kuna kohaliku muutuja andmetele pääseb juurde ainult ühe funktsiooni abil. Andmete jagamine on võimalik, kuna samale globaalsele muutujale pääseb juurde mitu funktsiooni.
Parameetrid Parameetrite edastamine on vajalik selleks, et lokaalsed muutujad saaksid juurde pääseda mõne muu funktsiooni väärtusele Parameetrite edastamine pole globaalse muutuja jaoks vajalik, kuna see on kogu programmis nähtav
Muutuva väärtuse muutmine Kui lokaalse muutuja väärtust muudetakse ühes funktsioonis, pole teises funktsioonis muudatusi näha. Kui globaalse muutuja väärtust muudetakse ühes funktsioonis, on muudatused nähtavad ülejäänud programmis.
Juurdepääs Kohalikele muutujatele pääseb juurde lausete abil funktsioonis, milles need on deklareeritud. Globaalsetele muutujatele pääseb juurde mis tahes programmi väitega.
Mälu salvestamine Seda hoitakse virnas, kui pole täpsustatud. See salvestatakse kindlas kohas, mille kompilaator otsustab.

Globaalsete muutujate kasutamise eelised

  • Globaalsele muutujale pääseb juurde kõigist programmi funktsioonidest või moodulitest
  • Te peate ainult deklareerima globaalse muutuja ühe korra väljaspool mooduleid.
  • Seda kasutatakse ideaalselt "konstantide" salvestamiseks, kuna see aitab teil püsivust hoida.
  • Globaalne muutuja on kasulik, kui samadele andmetele pääseb juurde mitu funktsiooni.

Kohalike muutujate kasutamise eelised

  • Kohalike muutujate kasutamine tagab, et muutujate väärtused jäävad ülesande töötamise ajal puutumatuks
  • Kui mitu ülesannet muudab ühte samaaegselt töötavat muutujat, võib tulemus olla ettearvamatu. Kuid selle kohalikuks muutujaks kuulutamine lahendab selle probleemi, kuna iga ülesanne loob kohaliku muutuja oma eksemplari.
  • Võite anda kohalikele muutujatele erinevates funktsioonides sama nime, kuna neid tunneb ära ainult funktsioon, milles nad on deklareeritud.
  • Kohalikud muutujad kustutatakse kohe, kui mis tahes funktsioon on läbi ja vabastavad mäluruumi, mille see võtab.

Globaalsete muutujate kasutamise puudused

  • Liiga palju globaalseks deklareeritud muutujaid jäävad siis mällu, kuni programmi täitmine on lõpule viidud. See võib põhjustada mälu otsas oleva probleemi.
  • Andmeid saab muuta mis tahes funktsiooniga. Iga programmis kirjutatud lause võib muuta globaalse muutuja väärtust. See võib mitme ülesandega keskkonnas anda ettearvamatuid tulemusi.
  • Kui globaalsed muutujad katkestatakse koodide ümbertegemise tõttu, peate muutma kõiki mooduleid, kus neid kutsutakse.

Kohalike muutujate kasutamise puudused

  • Kohaliku muutuja silumisprotsess on üsna keeruline.
  • Ühised andmed, mida on vaja korduvalt edastada, kuna andmete jagamine pole moodulite vahel võimalik.
  • Nende ulatus on väga piiratud.

Mis on kasulikum?

Kohalik ja globaalne muutuja on programmi kirjutamisel mis tahes keeles võrdselt olulised. Kuid suur hulk globaalset muutujat võib hõivata tohutu mälu. Globaalsete muutujate ebasoovitavat muutust on muutunud raske tuvastada. Seetõttu on soovitatav vältida soovimatute globaalsete muutujate deklareerimist.