Kas ir mainīgais?
Mainīgais ir nosaukums, kas piešķirts glabāšanas zonai, ar kuru programma var manipulēt. Mainīgā tips nosaka mainīgā atmiņas lielumu un izkārtojumu.
Tas arī nosaka vērtību diapazonu, kas jāsaglabā atmiņā, un to darbību raksturu, kuras var piemērot šim mainīgajam.
Šajā apmācībā jūs uzzināsiet
- Mainīgo lielums
- Vietējā mainīgā definīcija
- Globālā mainīgā definīcija
- Vietējie mainīgie pret globālajiem mainīgajiem
- Globālo mainīgo izmantošanas priekšrocības
- Vietējo mainīgo izmantošanas priekšrocības
- Globālo mainīgo izmantošanas trūkumi
- Vietējo mainīgo izmantošanas trūkumi
- Kas ir noderīgāks?
Mainīgo lielums
Mainīgā darbības joma ir vienkārši mainīgā mūža ilgums. Tas ir koda bloks, saskaņā ar kuru mainīgais ir piemērojams vai ir dzīvs. Piemēram:
function foo(){var x;}
Jūs deklarējat mainīgo "x" funkcijas "foo" iekšpusē. Šī mainīgā darbības joma paliek šajā funkcijā, un to nevar izmantot ārpus šīs funkcijas.
Ir trīs vietas, kur mainīgie var deklarēt mainīgo programmēšanas valodu:
- Funkcijas vai bloka iekšpusē: lokālie mainīgie
- Ārpus visām funkcijām: globālie mainīgie
- Funkcijas parametru definīcijā: formālie parametri
GALVENĀS ATŠĶIRĪBAS
- Vietējais mainīgais tiek deklarēts funkcijas iekšpusē, bet globālais mainīgais - ārpus funkcijas.
- Vietējie mainīgie tiek izveidoti, kad funkcija ir sākusi izpildi, un tiek zaudēta, kad funkcija beidzas, no otras puses, globālais mainīgais tiek izveidots, sākoties izpildei, un tiek zaudēts, kad programma beidzas.
- Vietējais mainīgais nenodrošina datu koplietošanu, savukārt globālais mainīgais nodrošina datu koplietošanu.
- Lokālie mainīgie tiek glabāti kaudzē, bet globālais mainīgais - fiksētā vietā, kuru nosaka kompilators.
- Parametru nodošana ir nepieciešama lokālajiem mainīgajiem, savukārt globālajam mainīgajam tas nav nepieciešams
Vietējais mainīgais
Vietējais mainīgais ir definēts kā mainīgā tips, kas deklarēts programmēšanas blokā vai apakšprogrammās. To var izmantot tikai tajā apakšprogrammā vai kodu blokā, kurā tā ir deklarēta. Vietējais mainīgais pastāv, līdz tiek izpildīts funkcijas bloks. Pēc tam tas tiks automātiski iznīcināts.
Vietējā mainīgā piemērs
public int add(){int a =4;int b=5;return a+b;}
Šeit “a” un “b” ir lokālie mainīgie
Globālais mainīgais
Globālā mainīgā programmā ir mainīgs definēts ārpus subroutine vai funkciju. Tam ir globāla darbības joma, kas nozīmē, ka tā saglabā savu vērtību visā programmas darbības laikā. Tādējādi tam var piekļūt visā programmā ar jebkuru programmā definētu funkciju, ja vien tā nav aizēnota.
Piemērs:
int a =4;int b=5;public int add(){return a+b;}
Šeit “a” un “b” ir globālie mainīgie.
Vietējais mainīgais Vs. Globālie mainīgie
Šeit ir dažas būtiskas atšķirības starp lokālajiem un globālajiem mainīgajiem.
Parametrs | Vietējais | Globāls |
---|---|---|
Darbības joma | Tas tiek deklarēts funkcijas iekšpusē. | Tas tiek deklarēts ārpus funkcijas. |
Vērtība | Ja tas nav inicializēts, tiek saglabāta atkritumu vērtība | Ja tas nav inicializēts, pēc noklusējuma tiek saglabāta nulle. |
Mūžs | Tas tiek izveidots, kad funkcija sāk izpildi, un tiek zaudēta, kad funkcijas beidzas. | Tas tiek izveidots pirms programmas globālās izpildes sākuma un tiek zaudēts, kad programma beidzas. |
Datu koplietošana | Datu koplietošana nav iespējama, jo lokālā mainīgā datiem var piekļūt tikai ar vienu funkciju. | Datu koplietošana ir iespējama, jo vairākas funkcijas var piekļūt vienam un tam pašam globālajam mainīgajam. |
Parametri | Parametru nodošana ir nepieciešama, lai vietējie mainīgie piekļūtu citas funkcijas vērtībai | Parametru nodošana nav nepieciešama globālajam mainīgajam, jo tas ir redzams visā programmā |
Mainīgā lieluma izmaiņas | Kad vienā funkcijā tiek mainīta lokālā mainīgā vērtība, citas funkcijas izmaiņas nav redzamas. | Mainot globālā mainīgā vērtību vienā funkcijā, izmaiņas ir redzamas pārējā programmā. |
Piekļūst | Vietējiem mainīgajiem var piekļūt ar paziņojumu palīdzību funkcijas iekšpusē, kurā tie ir deklarēti. | Globālajiem mainīgajiem var piekļūt, izmantojot jebkuru programmas priekšrakstu. |
Atmiņas glabāšana | Tas tiek glabāts kaudzē, ja vien nav norādīts. | Tas tiek glabāts fiksētā vietā, kuru izlemj kompilators. |
Globālo mainīgo izmantošanas priekšrocības
- Globālajam mainīgajam var piekļūt no visām programmas funkcijām vai moduļiem
- Jums jādeklarē tikai globālais mainīgais vienreizējais laiks ārpus moduļiem.
- Tas ir ideāli piemērots "konstantu" uzglabāšanai, jo tas palīdz saglabāt konsistenci.
- Globālais mainīgais ir noderīgs, ja vairākas funkcijas piekļūst vieniem un tiem pašiem datiem.
Vietējo mainīgo izmantošanas priekšrocības
- Vietējo mainīgo izmantošana nodrošina garantiju, ka mainīgo lielumi paliks neskarti, kamēr uzdevums darbojas
- Ja vairāki uzdevumi maina vienu mainīgo, kas darbojas vienlaikus, rezultāts var būt neparedzams. Bet, deklarējot to kā lokālo mainīgo, šī problēma tiek atrisināta, jo katrs uzdevums izveidos savu lokālā mainīgā gadījumu.
- Vietējiem mainīgajiem var piešķirt to pašu nosaukumu dažādās funkcijās, jo tos atpazīst tikai funkcija, kurā tie ir deklarēti.
- Vietējie mainīgie tiek izdzēsti, tiklīdz kāda funkcija ir beigusies, un atbrīvo tajā aizņemto atmiņas vietu.
Globālo mainīgo izmantošanas trūkumi
- Pārāk daudz mainīgo ir deklarēti kā globāli, tad tie paliek atmiņā, līdz tiek pabeigta programmas izpilde. Tas var izraisīt atmiņas trūkumu.
- Datus var modificēt, izmantojot jebkuru funkciju. Jebkurš programmā ierakstīts paziņojums var mainīt globālā mainīgā vērtību. Tas var dot neparedzamus rezultātus daudzuzdevumu vidēs.
- Ja globālie mainīgie tiek pārtraukti koda atjaunošanas dēļ, jums būs jāmaina visi moduļi, kur tie tiek saukti.
Vietējo mainīgo izmantošanas trūkumi
- Vietējā mainīgā atkļūdošanas process ir diezgan grūts.
- Kopīgi dati, kas nepieciešami atkārtotai nodošanai, jo datu apmaiņa starp moduļiem nav iespējama.
- Viņiem ir ļoti ierobežota darbības joma.
Kas ir noderīgāks?
Vietējais un globālais mainīgais ir vienlīdz svarīgi, rakstot programmu jebkurā valodā. Tomēr liels skaits globālā mainīgā var aizņemt milzīgu atmiņu. Nevēlamas izmaiņas globālajos mainīgajos ir kļuvis grūti identificējams. Tāpēc ieteicams izvairīties no nevēlamu globālo mainīgo deklarēšanas.