Co je to proměnná?
Proměnná je název přiřazený oblasti úložiště, se kterou může program manipulovat. Typ proměnné určuje velikost a rozložení paměti proměnné.
Určuje také rozsah hodnot, které je třeba uložit do této paměti, a povahu operací, které lze na danou proměnnou použít.
V tomto výukovém programu se naučíte
- Rozsah proměnných
- Definice místní proměnné
- Definice globální proměnné
- Místní proměnné vs. globální proměnné
- Výhody používání globálních proměnných
- Výhody používání místních proměnných
- Nevýhody používání globálních proměnných
- Nevýhody používání lokálních proměnných
- Co je užitečnější?
Rozsah proměnných
Rozsah proměnné je jednoduše životnost proměnné. Je to blok kódu, pod kterým je proměnná použitelná nebo živá. Například:
function foo(){var x;}
Deklarujete proměnnou „x“ uvnitř funkce „foo“. Rozsah této proměnné zůstává uvnitř této funkce, nelze ji použít mimo tuto funkci.
Existují tři místa, kde proměnné můžete deklarovat programovacím jazykem proměnných:
- Uvnitř funkce nebo bloku: Místní proměnné
- Mimo všechny funkce: Globální proměnné
- V definici funkčních parametrů: Formální parametry
KLÍČOVÝ ROZDÍL
- Místní proměnná je deklarována uvnitř funkce, zatímco globální proměnná je deklarována mimo funkci.
- Místní proměnné se vytvářejí, když funkce zahájila provádění, a jsou ztraceny, když je funkce ukončena, na druhou stranu se globální proměnná vytvoří při spuštění provádění a ztratí se, když program skončí.
- Místní proměnná neposkytuje sdílení dat, zatímco globální proměnná poskytuje sdílení dat.
- Místní proměnné jsou uloženy v zásobníku, zatímco globální proměnná jsou uloženy na pevném místě, o kterém rozhodne kompilátor.
- Předávání parametrů je vyžadováno pro lokální proměnné, zatímco pro globální proměnnou není nutné
Místní proměnná
Místní proměnná je definována jako typ proměnné deklarované v rámci programovacího bloku nebo podprogramů. Lze jej použít pouze uvnitř podprogramu nebo bloku kódu, ve kterém je deklarován. Místní proměnná existuje, dokud není blok funkce spuštěn. Poté bude automaticky zničen.
Příklad lokální proměnné
public int add(){int a =4;int b=5;return a+b;}
Zde jsou „a“ a „b“ lokální proměnné
Globální proměnná
Globální proměnné v programu je proměnná definována mimo podprogram nebo funkce. Má globální působnost, což znamená, že si zachovává svoji hodnotu po celou dobu životnosti programu. Proto k němu lze přistupovat v celém programu jakoukoli funkcí definovanou v programu, pokud není zastíněna.
Příklad:
int a =4;int b=5;public int add(){return a+b;}
Zde jsou „a“ a „b“ globální proměnné.
Místní proměnná vs. Globální proměnné
Zde jsou některé zásadní rozdíly mezi lokálními a globálními proměnnými.
Parametr | Místní | Globální |
---|---|---|
Rozsah | Deklaruje se uvnitř funkce. | Deklaruje se mimo funkci. |
Hodnota | Pokud není inicializován, je uložena nesmyslná hodnota | Pokud není inicializována, nula se uloží jako výchozí. |
Život | Je vytvořen při spuštění funkce a ztracen při ukončení funkcí. | Je vytvořen před spuštěním globálního spuštění programu a ztracen při ukončení programu. |
Sdílení dat | Sdílení dat není možné, protože k datům místní proměnné lze přistupovat pouze pomocí jedné funkce. | Sdílení dat je možné, protože ke stejné globální proměnné může přistupovat více funkcí. |
Parametry | Předávání parametrů je vyžadováno pro lokální proměnné pro přístup k hodnotě v jiné funkci | Předávání parametrů není pro globální proměnnou nutné, protože je viditelné v celém programu |
Úprava hodnoty proměnné | Když je hodnota místní proměnné změněna v jedné funkci, změny nejsou viditelné v jiné funkci. | Když je hodnota globální proměnné změněna v jedné funkci, změny jsou viditelné ve zbytku programu. |
Přístup k | Místní proměnné jsou přístupné pomocí příkazů uvnitř funkce, ve které jsou deklarovány. | Ke globálním proměnným můžete přistupovat libovolným příkazem v programu. |
Paměťové úložiště | Pokud není uvedeno, je uloženo v zásobníku. | Je uložen na pevném místě, o kterém rozhodne kompilátor. |
Výhody používání globálních proměnných
- Ke globální proměnné můžete přistupovat ze všech funkcí nebo modulů v programu
- Vyžadujete pouze deklaraci globální proměnné jednou mimo moduly.
- Ideálně se používá k ukládání „konstant“, protože vám pomůže udržet konzistenci.
- Globální proměnná je užitečná, když více funkcí přistupuje ke stejným datům.
Výhody používání místních proměnných
- Použití místních proměnných nabízí záruku, že hodnoty proměnných zůstanou beze změny, když je úloha spuštěna
- Pokud několik úloh změní jednu proměnnou, která běží současně, pak může být výsledek nepředvídatelný. Ale deklarování jako lokální proměnné tento problém řeší, protože každý úkol vytvoří vlastní instanci místní proměnné.
- Místní proměnné můžete v různých funkcích pojmenovat stejně, protože jsou rozpoznávány pouze funkcí, v níž jsou deklarovány.
- Místní proměnné jsou smazány, jakmile jakákoli funkce skončí, a uvolní paměťový prostor, který zabírá.
Nevýhody používání globálních proměnných
- Příliš mnoho proměnných deklarovaných jako globální, pak zůstávají v paměti, dokud není dokončeno provádění programu. To může způsobit problém s nedostatkem paměti.
- Data lze upravit jakoukoli funkcí. Jakýkoli příkaz zapsaný v programu může změnit hodnotu globální proměnné. To může poskytnout nepředvídatelné výsledky v prostředích s více úkoly.
- Pokud jsou globální proměnné přerušeny kvůli refaktoringu kódu, budete muset změnit všechny moduly, kde se nazývají.
Nevýhody používání lokálních proměnných
- Proces ladění místní proměnné je docela složitý.
- Běžná data potřebná k opakovanému předávání, protože sdílení dat mezi moduly není možné.
- Mají velmi omezený rozsah.
Co je užitečnější?
Místní a globální proměnná je při psaní programu v jakémkoli jazyce stejně důležitá. Velké množství globální proměnné však může zabírat obrovskou paměť. Nežádoucí změna globálních proměnných je obtížné identifikovat. Proto je vhodné vyhnout se deklaraci nežádoucích globálních proměnných.