Odporúčaná, 2024

Redakcia Choice

Rozdiel medzi lokálnou a globálnou premennou

Ako sme už spomenuli, premenná je názov, ktorý je daný pamäťovému miestu a musí byť deklarovaný pred jeho použitím. V C sú všetky premenné deklarované na začiatku programu. V jazyku C ++ môžu byť premenné deklarované v ľubovoľnom časovom okamihu skôr, než sa použijú v pokynoch.

Premenné sa ďalej klasifikujú do "miestnych" a "globálnych" premenných, čo je hlavnou témou našej diskusie. Hlavným rozdielom medzi lokálnou a globálnou premennou je to, že lokálna premenná je deklarovaná vo funkčnom bloku, kde ako globálna premenná je deklarovaná mimo funkcií v programe.

Pozrime sa na ďalšie rozdiely medzi miestnou a globálnou premennou spolu s porovnávacou tabuľkou.

Porovnávacia tabuľka:

Základ pre porovnanieMiestna premennáGlobálna premenná
vyhláseniePremenné sú deklarované vo funkcii.Premenné sú deklarované mimo akúkoľvek funkciu.
RozsahV rámci funkcie, v rámci ktorej sú deklarované.V celom programe.
prístupPrístupné iba vo vyhláseniach, vo funkcii, v ktorej sú deklarované.Prístup k akémukoľvek vyhláseniu v celom programe.
životVytvorený, keď je funkčný blok zadaný a zničený pri výstupe.Zostávajte v existencii po celú dobu vykonávania programu.
skladovanieMiestne premenné sú uložené v zásobníku, pokiaľ nie je uvedené.Uložené na pevnom mieste, o ktorom rozhodol kompilátor.

Definícia lokálnej premennej

Lokálna premenná sa vždy deklaruje vo funkčnom bloku. V C sa na začiatku kódového bloku deklaruje lokálna premenná. V C ++ môžu byť deklarované kdekoľvek v kódovom bloku pred ich použitím. Lokálne premenné sa dajú získať iba pomocou vyhlásení napísaných vo funkcii, v ktorej sa deklaruje miestna premenná. Sú zabezpečené v tom zmysle, že nemôžu byť prístupné žiadnou inou funkciou toho istého programu.

Miestna premenná existuje až do vykonania bloku funkcie a tým sa zničia po ukončení vykonávania bloku. Miestne premenné stratia svoj obsah hneď ako vykonanie opustil blok, v ktorom sú deklarované.

Dôvodom je to, že lokálne premenné sú uložené v zásobníku, pokiaľ nie je špecifikované ich špeciálne ukladanie. Stoh má dynamický charakter a zmena umiestnenia pamäte vedie k tomu, že lokálna premenná neudržiava svoju hodnotu hneď, ako existuje blok funkcie.

Poznámka:
Existuje však spôsob, ako zachovať hodnotu lokálnej premennej pomocou "statického" modifikátora.

Definícia globálnej premennej

Globálna premenná sa deklaruje mimo všetkých funkcií prítomných v programe. Na rozdiel od lokálnych premenných je globálna premenná prístupná ľubovoľnou funkciou prítomnou v programe. Globálne premenné nie sú veľmi spoľahlivé, pretože ich hodnota môže byť zmenená akoukoľvek funkciou prítomnou v programe.

Globálne premenné zostávajú v platnosti až do úplného vykonania celého programu. Globálne premenné si zachovajú svoje hodnoty až do vykonávania programu. Dôvodom je, že sú uložené na pevnej oblasti pamäte, o ktorej rozhodol kompilátor.

Globálna premenná je užitočná v situáciách, keď viaceré funkcie pristupujú k rovnakým údajom. Použitie veľkého množstva globálnych premenných môže byť problematické, pretože môžu nastať nežiaduce zmeny hodnoty globálnej premennej.

Kľúčový rozdiel medzi lokálnou a globálnou premennou.

  1. Miestne premenné sa nazývajú "miestne", pretože sú známe len vyhláseniam napísaným vo funkcii, v ktorej sú deklarované a nie sú známe žiadne ďalšie funkcie prítomné mimo daného funkčného bloku. V prípade globálnej premennej sú známe každú funkciu prítomnú v programe; preto sa nazývajú "globálne".
  2. Globálne premenné si ponechajú svoju hodnotu až do ukončenia programu, pretože sú uložené na pevnom mieste, o ktorom rozhodol kompilátor. Miestne premenné sú uložené v zásobníku; a preto si nezachovávajú svoju hodnotu, pretože "stack" má dynamický charakter, ale kompilátor môže byť nasmerovaný na zachovanie ich hodnoty pomocou "statického" modifikátora.
  3. Ak globálna a miestna premenná sú deklarované s rovnakým názvom potom všetky príkazy blokového kódu, v ktorom je deklarovaná lokálna premenná, budú odkazovať iba na lokálnu premennú a nemajú žiadny vplyv na globálnu premennú.
  4. Miestna premenná je zničená, keď riadenie programu opustí blok, v ktorom je deklarovaná lokálna premenná. Globálna premenná je však zničená po ukončení celého programu.

záver:

Lokálne a globálne premenné sú rovnako potrebné pri písaní programu. Vyhlásenie veľkého množstva globálnych premenných by však mohlo byť problematické vo veľkom programe, pretože to môže spôsobiť neželané zmeny globálnej premennej; a bolo by ťažké určiť, ktorá časť programu sa zmenila. Preto by sme sa mali vyhnúť deklarovaniu nepotrebných globálnych premenných.

Top