Doporučená, 2021

Redakce Choice

Rozdíl mezi místní a globální proměnnou

Jak již bylo zmíněno dříve, proměnná je název, který je přidělen paměti a musí být deklarován před použitím. V C jsou všechny proměnné deklarovány při spuštění programu. V jazyce C ++ mohou být proměnné deklarovány v libovolném okamžiku před jejich použitím v instrukcích.

Proměnné se dále dělí na „lokální“ a „globální“ proměnnou, která je hlavním tématem naší diskuse. Hlavní rozdíl mezi lokální a globální proměnnou je, že lokální proměnná je deklarována uvnitř funkčního bloku, kde je globální proměnná deklarována mimo funkce v programu.

Podívejme se na některé další rozdíly mezi lokální a globální proměnnou spolu s srovnávací tabulkou.

Tabulka porovnání:

Základ pro porovnáníMístní proměnnáGlobální proměnná
ProhlášeníProměnné jsou deklarovány uvnitř funkce.Proměnné jsou deklarovány mimo jakoukoliv funkci.
RozsahV rámci funkce, uvnitř které jsou deklarovány.V celém programu.
PřístupPřístup pouze pomocí prohlášení, uvnitř funkce, ve které jsou deklarovány.Přístup k jakémukoli prohlášení v celém programu.
ŽivotVytvořeno, když je funkční blok zadán a zničen při výstupu.Zůstaňte v platnosti po celou dobu provádění programu.
Úložný prostorMístní proměnné jsou uloženy v zásobníku, pokud není specifikováno.Uloženo na pevném místě, o němž rozhodl překladač.

Definice lokální proměnné

Lokální proměnná je vždy deklarována uvnitř funkčního bloku. V C je lokální proměnná deklarována na začátku kódového bloku. V C ++ mohou být deklarovány kdekoli v bloku kódu před jejich použitím. K lokálním proměnným lze přistupovat pouze příkazy zapsanými uvnitř funkce, ve které jsou deklarovány lokální proměnné. Jsou bezpečné v určitém smyslu, že k nim nelze přistupovat žádnou jinou funkcí stejného programu.

Lokální proměnná existuje, dokud není blok funkce v provedení, a tím zničen po ukončení bloku. Místní proměnné ztratí svůj obsah, jakmile provedení opustí blok, ve kterém jsou deklarovány.

Důvodem je, že lokální proměnné jsou uloženy v zásobníku, pokud není specifikováno jejich speciální úložiště. Zásobník má dynamickou povahu a změna umístění paměti vede k tomu, proč místní proměnná nedrží jejich hodnotu, jakmile blok funkce existuje.

Poznámka:
Existuje však způsob, jak zachovat hodnotu místní proměnné pomocí „statického“ modifikátoru.

Definice globální proměnné

Globální proměnná je deklarována mimo všechny funkce přítomné v programu. Na rozdíl od lokálních proměnných může být globální proměnná zpřístupněna libovolnou funkcí přítomnou v programu. Globální proměnné nejsou moc spolehlivé, protože jejich hodnota může být změněna libovolnou funkcí přítomnou v programu.

Globální proměnné zůstávají v platnosti až do úplného provedení celého programu. Globální proměnné si uchovávají své hodnoty, dokud není program spuštěn. Důvodem je, že jsou uloženy v pevné oblasti paměti, o které rozhodl překladač.

Globální proměnná je užitečná v situacích, kdy ke stejným datům přistupuje více funkcí. Použití velkého počtu globálních proměnných může být problematické, protože může dojít k nechtěným změnám hodnoty globální proměnné.

Klíčový rozdíl mezi lokální a globální proměnnou.

  1. Místní proměnné se nazývají „lokální“, protože jsou známé pouze příkazům napsaným ve funkci, ve které jsou deklarovány a nejsou známy žádné jiné funkci, která se nachází mimo tento funkční blok. V případě globální proměnné jsou známé každé funkci přítomné v programu; proto se nazývají „globální“.
  2. Globální proměnné si uchovávají svou hodnotu, dokud není program ve fázi provádění, protože jsou uloženy na pevném místě, o kterém rozhodl překladač. Lokální proměnné jsou uloženy v zásobníku; proto si nezachovávají svou hodnotu jako „stack“ je dynamický, ale překladač může být nasměrován tak, aby si zachoval svou hodnotu pomocí „statického“ modifikátoru.
  3. Pokud je globální a lokální proměnná deklarována se stejným názvem, pak všechny příkazy bloku kódu, ve kterém je deklarována lokální proměnná, budou odkazovat pouze na lokální proměnnou a nebudou mít vliv na globální proměnnou.
  4. Lokální proměnná je zničena, když řízení programu skončí mimo blok, ve kterém je deklarována lokální proměnná. Globální proměnná je však zničena při ukončení celého programu.

Závěr:

Místní i globální proměnné jsou stejně nutné při psaní programu. Prohlášení velkého počtu globálních proměnných by však mohlo být problematické ve velkém programu, protože může způsobit nežádoucí změny globální proměnné; a bylo by těžké určit, která část programu tuto změnu provedla. Proto bychom se měli vyhnout deklaraci zbytečných globálních proměnných.

Top