Proměnné v jakémkoli programovacím jazyce hrají zásadní roli. Proměnné jsou klasifikovány na globální proměnné a lokální proměnné na základě jejich rozsahu. Hlavní rozdíl mezi globálními a lokálními proměnnými je ten, že ke globálním proměnným lze přistupovat globálně v celém programu, zatímco k lokálním proměnným lze přistupovat pouze v rámci funkce nebo bloku, ve kterém jsou definovány. V tomto tématu nejprve pochopíme, co jsou proměnné a rozsah, spolu s lokálními proměnnými, globálními proměnnými a poté rozdíly mezi oběma proměnnými.
Co je proměnná?
Proměnná je název daný paměťovému místu pro uložení hodnot v počítačovém programu. Používá se k ukládání informací, na které lze v programu odkazovat a s nimiž lze manipulovat.
celé číslo na řetězec java
Název proměnné můžeme zvolit libovolný, ale musí se řídit sémantikou programování. Taková, jaká může být , a, b, x, y, z, sub, div, total, avg atd .
Řekněme, že existují dvě hodnoty, 10 a 20, které chceme uložit a použít v našem programu. K tomu potřebujeme použít proměnnou a provedeme následující kroky:
- Nejprve vytvoříme nebo deklarujeme proměnnou s vhodným názvem.
- Přiřaďte tyto hodnoty proměnným a uložte je.
- Jakmile jsou tyto hodnoty uloženy, můžeme tyto proměnné použít s jejich názvem v našem programu.
Jak můžeme vidět na obrázku výše, jsou zde dva paměťové sloty, 001 a 002, a tato místa jsme pojmenovali jako A a B. A obsahuje 10 a B obsahuje 20.
Různé programovací jazyky mají různé způsoby, jak deklarovat proměnnou. Například v jazyce C můžeme proměnnou deklarovat následujícím způsobem:
Syntaxe: (syntaxe deklarace proměnné v jazyce C)
datatype v1, v2, v3,....;
Příklad:
#include void main(){ int a; int b; int sum; }
Rozsah proměnné
Každá proměnná je definována a může být použita v rámci jejího rozsahu a určuje, v jakém programu je tato proměnná dostupná k použití. Rozsah znamená životnost dané proměnné. To znamená, že proměnná může být přístupná nebo viditelná pouze v rámci jejího rozsahu.
Rozsah proměnných lze definovat jejich deklarací a proměnné jsou deklarovány především dvěma způsoby:
římská čísla 1 až 100
Co je globální proměnná?
- Globální proměnné jsou ty proměnné, které jsou deklarovány mimo všechny funkce nebo blok a lze k nim v programu přistupovat globálně.
- Lze k němu přistupovat jakoukoli funkcí v programu.
- Jakmile deklarujeme globální proměnnou, lze její hodnotu měnit tak, jak se používá s různými funkcemi.
- Životnost globální proměnné existuje, dokud se program nespustí. Tyto proměnné jsou uloženy na pevných paměťových místech zadaných kompilátorem a automaticky se nečistí.
- Globální proměnné se většinou používají v programování a jsou užitečné v případech, kdy všechny funkce potřebují přístup ke stejným datům.
Příklad:
#include int a=50, b=40; void main() { printf('a = %d and b=%d',a,b); }
Ve výše uvedeném příkladu jsou aab globální proměnné.
Výhody globální proměnné
- Globální proměnné jsou přístupné všemi funkcemi přítomnými v programu.
- Vyžaduje se pouze jedno prohlášení.
- Velmi užitečné, pokud všechny funkce přistupují ke stejným datům.
Nevýhody globální proměnné
- Hodnota globální proměnné může být náhodně změněna, protože ji může použít jakákoli funkce v programu.
- Pokud použijeme velké množství globálních proměnných, pak je velká šance na generování chyb v programu.
Co je to místní proměnná?
- K těmto proměnným lze přistupovat pouze v rámci funkce, ve které jsou deklarovány.
- Životnost lokální proměnné je pouze v rámci její funkce, což znamená, že proměnná existuje, dokud se funkce nespustí. Po dokončení provádění funkce jsou místní proměnné zničeny a mimo funkci již neexistují.
- Důvodem omezeného rozsahu lokálních proměnných je to, že lokální proměnné jsou uloženy v zásobníku, který má dynamický charakter a automaticky čistí data v něm uložená.
- Ale tím, že proměnnou učiníme statickou s klíčovým slovem 'static', můžeme zachovat hodnotu lokální proměnné.
Příklad:
#include void main() { int x=50, y=40; printf('x = %d and y=%d',x, y); }
Ve výše uvedeném příkladu jsme deklarovali x a y dvě proměnné uvnitř hlavní funkce. Jedná se tedy o lokální proměnné.
Výhody lokální proměnné
- Stejný název lokální proměnné lze použít v různých funkcích, protože je rozpoznán pouze funkcí, ve které je deklarován.
- Lokální proměnné využívají paměť pouze po omezenou dobu, kdy je funkce vykonávána; poté může být stejné místo v paměti znovu použito.
Nevýhody lokálních proměnných
- Rozsah lokální proměnné je omezen pouze na její funkci a nemohou být použity jinými funkcemi.
- Sdílení dat pomocí lokální proměnné není povoleno.
Srovnávací graf mezi globální proměnnou a lokální proměnnou
Globální proměnná | Místní proměnná |
---|---|
Globální proměnné jsou deklarovány mimo všechny funkční bloky. | Lokální proměnné jsou deklarovány v rámci funkčního bloku. |
Rozsah zůstává po celou dobu programu. | Rozsah je omezený a zůstává pouze ve funkci, ve které jsou deklarovány. |
Jakákoli změna globální proměnné ovlivní celý program, ať je používán kdekoli. | Jakákoli změna v lokální proměnné nemá vliv na ostatní funkce programu. |
Globální proměnná existuje v programu po celou dobu provádění programu. | Lokální proměnná je vytvořena, když je funkce spuštěna, a jakmile je provádění dokončeno, proměnná je zničena. |
Je přístupný v rámci programu všemi funkcemi přítomnými v programu. | Lze k němu přistupovat pouze příkazy funkcí, ve kterých je deklarován, a nikoli jinými funkcemi. |
Pokud globální proměnná není inicializována, ve výchozím nastavení trvá nulu. | Pokud místní proměnná není inicializována, převezme ve výchozím nastavení hodnotu nesmyslu. |
Globální proměnné jsou uloženy v datovém segmentu paměti. | Lokální proměnné jsou uloženy v zásobníku v paměti. |
Nemůžeme deklarovat mnoho proměnných se stejným názvem. | Můžeme deklarovat různé proměnné se stejným názvem, ale v jiných funkcích. |
Příklady k pochopení rozdílů mezi lokální a globální proměnnou
Pojďme nyní porozumět příkladům v různých programovacích jazycích, abychom lépe porozuměli rozdílu mezi lokálními a globálními proměnnými.
Místní versus globální v C
Příklad-1:
#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); }
Výstup:
The addition result is: 120 The Multiplication result is: 200 30
Jak můžeme vidět ve výše uvedeném programu, vzali jsme A a b globální proměnné, ke kterým se přistupuje v různých funkcích, jako je Add() a main(). Zatímco existují také lokální proměnné jako c, d, Ans1 a Ans2, ke kterým přistupují pouze ty funkce, ve kterých jsou deklarovány.
Pokud se pokusíme použít proměnné c a d mimo funkci Mul(), budou použity jako nové proměnné. Jak jsme ukázali tím, že ve funkci main() také vezmeme c, je s ní zacházeno jako s novou proměnnou.
Místní vs. Globální v Pythonu
Příklad-1:
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
Výstup:
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.
Ve výše uvedeném programu jsme vzali jednu globální proměnnou v1 a jednu lokální proměnnou v2. Protože v1 je globální, lze k němu snadno přistupovat v jakékoli funkci a v2 je lokální; používá se pouze v rámci své deklarované funkce. Ale pokud se pokusíme použít v1 ve funkci func1, zobrazí to chybu. Podívejme se na níže uvedený příklad:
Příklad-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
Pokud se pokusíme získat přístup k verzi 1, lze ji snadno získat v fun1 a func2. Ale pokud se pokusíme o přístup k v2 mimo její funkci, což znamená ve funkci 2, vyhlásí to chybu běhu. Po provedení výše uvedeného kódu získáme níže uvedený výstup:
cast sql
Chyba za běhu:
NameError: global name 'v2' is not defined
Výstup:
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.
Místní vs. Globální proměnná v Javě
V Javě neexistuje koncept globálních proměnných; protože Java je objektově orientovaný programovací jazyk, vše je součástí třídy. Pokud však chceme proměnnou zpřístupnit globálně, můžeme ji učinit statickou pomocí a statický Klíčové slovo.
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)); } }
Výstup:
Value of non-static variable is: 20 Value of static variable is:10
Ve výše uvedeném programu jsme použili jednu lokální proměnnou nebo nestatickou proměnnou a jednu statickou proměnnou. K místní proměnné lze přistupovat pomocí objektu třídy Demo, zatímco ke statické proměnné lze přistupovat pomocí názvu třídy.