Kintamieji bet kurioje programavimo kalboje atlieka lemiamą vaidmenį. Kintamieji pagal apimtį skirstomi į visuotinius ir vietinius kintamuosius. Pagrindinis skirtumas tarp visuotinių ir vietinių kintamųjų yra tas, kad globalius kintamuosius galima pasiekti globaliai visoje programoje, o vietinius kintamuosius galima pasiekti tik toje funkcijoje arba bloke, kuriame jie yra apibrėžti. Šioje temoje pirmiausia išsiaiškinsime, kas yra kintamieji ir apimtis, kartu su vietiniais kintamaisiais, visuotiniais kintamaisiais, o tada – skirtumais tarp abiejų kintamųjų.
Kas yra kintamasis?
Kintamasis yra pavadinimas, suteiktas atminties vietai, kad būtų galima saugoti reikšmes kompiuterio programoje. Jis naudojamas informacijai, kuri gali būti nuoroda ir manipuliuojama programoje, saugoti.
0,2 kaip trupmena
Kintamajam galime pasirinkti bet kokį pavadinimą, tačiau jis turi atitikti programavimo semantiką. Toks, koks gali būti , a, b, x, y, z, sub, div, bendras, vid .
Tarkime, kad yra dvi reikšmės, 10 ir 20, kurias norime išsaugoti ir naudoti savo programoje. Tam turime naudoti kintamąjį ir atliksime šiuos veiksmus:
- Pirmiausia sukursime arba paskelbsime kintamąjį tinkamu pavadinimu.
- Priskirkite tas reikšmes kintamiesiems, kad jas išsaugotumėte.
- Kai šios reikšmės yra saugomos, galime naudoti šiuos kintamuosius su jų pavadinimais savo programoje.
Kaip matome aukščiau esančiame paveikslėlyje, yra du atminties lizdai, 001 ir 002, ir mes suteikėme šioms vietoms pavadinimus kaip A ir B. A yra 10, o B - 20.
Skirtingos programavimo kalbos turi skirtingus būdus deklaruoti kintamąjį. Pavyzdžiui, C kalboje kintamąjį galime deklaruoti tokiu būdu:
Sintaksė: (kintamojo deklaravimo sintaksė C kalba)
datatype v1, v2, v3,....;
Pavyzdys:
#include void main(){ int a; int b; int sum; }
Kintamojo apimtis
Kiekvienas kintamasis yra apibrėžtas ir gali būti naudojamas pagal jo apimtį ir nustato, kur programoje šį kintamąjį galima naudoti. Taikymo sritis reiškia to kintamojo galiojimo laiką. Tai reiškia, kad kintamasis gali būti pasiekiamas arba matomas tik jo apimtyje.
Kintamųjų apimtį galima apibrėžti deklaruojant, o kintamieji deklaruojami daugiausia dviem būdais:
vakarienė prieš vakarienę
Kas yra visuotinis kintamasis?
- Visuotiniai kintamieji yra tie kintamieji, kurie deklaruojami už visų funkcijų ar blokų ribų ir kuriuos galima pasiekti visame pasaulyje.
- Jį galima pasiekti naudojant bet kurią programoje esančią funkciją.
- Kai deklaruojame visuotinį kintamąjį, jo reikšmė gali būti keičiama naudojant skirtingas funkcijas.
- Visuotinio kintamojo gyvavimo laikas egzistuoja iki programos vykdymo. Šie kintamieji saugomi fiksuotose atminties vietose, kurias suteikia kompiliatorius, ir nėra automatiškai išvalomos.
- Globalūs kintamieji dažniausiai naudojami programuojant ir naudingi tais atvejais, kai visoms funkcijoms reikia pasiekti tuos pačius duomenis.
Pavyzdys:
#include int a=50, b=40; void main() { printf('a = %d and b=%d',a,b); }
Aukščiau pateiktame pavyzdyje a ir b yra pasauliniai kintamieji.
Visuotinio kintamojo pranašumai
- Visuotinius kintamuosius gali pasiekti visos programoje esančios funkcijos.
- Reikalinga tik viena deklaracija.
- Labai naudinga, jei visos funkcijos pasiekia tuos pačius duomenis.
Visuotinio kintamojo trūkumai
- Visuotinio kintamojo reikšmė gali būti pakeista netyčia, nes ją gali naudoti bet kuri programos funkcija.
- Jei naudosime daug globalių kintamųjų, tada programoje yra didelė klaidų generavimo tikimybė.
Kas yra vietinis kintamasis?
- Šiuos kintamuosius galima pasiekti tik per funkciją, kurioje jie deklaruoti.
- Vietinio kintamojo gyvavimo laikas priklauso tik jo funkcijai, o tai reiškia, kad kintamasis egzistuoja tol, kol funkcija vykdoma. Užbaigus funkcijos vykdymą, vietiniai kintamieji sunaikinami ir nebeegzistuoja už funkcijos ribų.
- Ribotos vietinių kintamųjų apimties priežastis yra ta, kad vietiniai kintamieji saugomi krūvoje, kuri yra dinamiška ir automatiškai išvalo jame saugomus duomenis.
- Tačiau padarę kintamąjį statinį su „static“ raktiniu žodžiu, galime išlaikyti vietinio kintamojo reikšmę.
Pavyzdys:
#include void main() { int x=50, y=40; printf('x = %d and y=%d',x, y); }
Aukščiau pateiktame pavyzdyje pagrindinės funkcijos viduje paskelbėme du kintamuosius x ir y. Taigi tai yra vietiniai kintamieji.
Vietinio kintamojo privalumai
- Tas pats vietinio kintamojo pavadinimas gali būti naudojamas įvairiose funkcijose, nes jį atpažįsta tik funkcija, kurioje jis deklaruojamas.
- Vietiniai kintamieji naudoja atmintį tik ribotą laiką, kai funkcija vykdoma; po to ta pati atminties vieta gali būti naudojama pakartotinai.
Vietinių kintamųjų trūkumai
- Vietinio kintamojo apimtis apsiriboja tik jo funkcija ir negali būti naudojama kitoms funkcijoms.
- Duomenų bendrinimas naudojant vietinį kintamąjį neleidžiamas.
Pasaulinio kintamojo ir vietinio kintamojo palyginimo diagrama
Visuotinis kintamasis | Vietinis kintamasis |
---|---|
Visuotiniai kintamieji deklaruojami už visų funkcijų blokų ribų. | Vietiniai kintamieji deklaruojami funkcijų bloke. |
Taikymo sritis išlieka visos programos metu. | Taikymo sritis yra ribota ir lieka tik toje funkcijoje, kurioje jie deklaruojami. |
Bet koks visuotinio kintamojo pakeitimas turi įtakos visai programai, kad ir kur ji būtų naudojama. | Bet koks vietinio kintamojo pakeitimas neturi įtakos kitoms programos funkcijoms. |
Visuotinis kintamasis programoje egzistuoja visą programos vykdymo laiką. | Vykdant funkciją sukuriamas vietinis kintamasis, o baigus vykdyti, kintamasis sunaikinamas. |
Jį galima pasiekti visoje programoje naudojant visas programoje esančias funkcijas. | Jį galima pasiekti tik naudojant funkcijų sakinius, kuriuose jis deklaruotas, o ne naudojant kitas funkcijas. |
Jei visuotinis kintamasis nėra inicijuotas, pagal numatytuosius nustatymus jis yra lygus nuliui. | Jei vietinis kintamasis nėra inicijuotas, pagal numatytuosius nustatymus jis paima šiukšlių reikšmę. |
Globalūs kintamieji saugomi atminties duomenų segmente. | Vietiniai kintamieji saugomi atmintyje esančioje krūvoje. |
Negalime deklaruoti daugelio kintamųjų tuo pačiu pavadinimu. | Galime deklaruoti įvairius kintamuosius tuo pačiu pavadinimu, bet kitose funkcijose. |
Pavyzdžiai, kaip suprasti skirtumus tarp vietinio ir visuotinio kintamojo
Dabar supraskime pavyzdžius skirtingomis programavimo kalbomis, kad geriau suprastume skirtumą tarp vietinių ir globalių kintamųjų.
Vietinis vs globalus C
1 pavyzdys:
#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); }
Išvestis:
The addition result is: 120 The Multiplication result is: 200 30
Kaip matome aukščiau pateiktoje programoje, mes ėmėmės a ir b pasauliniai kintamieji, kurie pasiekiami naudojant įvairias funkcijas, pvz., Add() ir main(). Tuo tarpu taip pat yra vietinių kintamųjų, tokių kaip c, d, Ans1 ir Ans2, kuriuos pasiekia tik tos funkcijos, kuriose jie deklaruoti.
Jei bandysime naudoti c ir d kintamuosius už funkcijos Mul() ribų, jie bus naudojami kaip nauji kintamieji. Kaip parodėme funkcijoje main () taip pat įtraukę c, jis traktuojamas kaip naujas kintamasis.
Vietinis vs. Pasaulinis Python
1 pavyzdys:
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
Išvestis:
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.
Aukščiau pateiktoje programoje mes paėmėme vieną visuotinį kintamąjį v1 ir vieną vietinį kintamąjį v2. Kadangi v1 yra visuotinis, jį galima lengvai pasiekti naudojant bet kurią funkciją, o v2 yra vietinis; jis naudojamas tik pagal deklaruotą funkciją. Bet jei bandysime naudoti v1 func1, tai duos klaidą. Pažiūrėkime žemiau pateiktą pavyzdį:
Pavyzdys-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
Jei bandysime pasiekti v1, ją galima lengvai pasiekti naudojant fun1 ir func2. Bet jei bandysime pasiekti v2 už jos funkcijos ribų, o tai reiškia, func2, tai duos vykdymo klaidą. Vykdę aukščiau pateiktą kodą, gausime žemiau pateiktą išvestį:
kiek uncijų yra 10 mililitrų
Klaida:
NameError: global name 'v2' is not defined
Išvestis:
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.
Vietinis vs. Visuotinis kintamasis Java
„Java“ nėra visuotinių kintamųjų koncepcijos; Kadangi Java yra į objektus orientuota programavimo kalba, viskas yra klasės dalis. Bet jei norime, kad kintamasis būtų prieinamas visame pasaulyje, galime padaryti jį statinį naudodami a statinis raktinis žodis.
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)); } }
Išvestis:
Value of non-static variable is: 20 Value of static variable is:10
Aukščiau pateiktoje programoje naudojome vieną vietinį arba nestatinį kintamąjį ir vieną statinį kintamąjį. Vietinį kintamąjį galima pasiekti naudojant Demo klasės objektą, o statinį kintamąjį galima pasiekti naudojant klasės pavadinimą.