Što je varijabla?
Varijabla je naziv dodijeljen prostoru za pohranu kojim program može manipulirati. Tip varijable određuje veličinu i izgled memorije varijable.
Također određuje raspon vrijednosti koje treba pohraniti unutar te memorije i prirodu operacija koje se mogu primijeniti na tu varijablu.
U ovom ćete tutorijalu naučiti
- Opseg varijabli
- Definicija lokalne varijable
- Definicija globalne varijable
- Lokalna varijabla naspram globalnih varijabli
- Prednosti korištenja globalnih varijabli
- Prednosti korištenja lokalnih varijabli
- Mane upotrebe globalnih varijabli
- Mane upotrebe lokalnih varijabli
- Što je korisnije?
Opseg varijabli
Opseg varijable jednostavno je vijek trajanja varijable. To je blok koda pod kojim je varijabla primjenjiva ili živa. Na primjer:
function foo(){var x;}
Deklarirate varijablu "x" unutar funkcije "foo". Opseg te varijable ostaje unutar te funkcije i ne može se koristiti izvan te funkcije.
Tri su mjesta na kojima varijable možete proglasiti programskim jezikom varijabli:
- Unutar funkcije ili bloka: Lokalne varijable
- Izvan svih funkcija: Globalne varijable
- U definiciji parametara funkcije: Formalni parametri
KLJUČNA RAZLIKA
- Lokalna varijabla deklarira se unutar funkcije, dok se globalna varijabla deklarira izvan funkcije.
- Lokalne varijable kreiraju se kada je funkcija započela s izvršavanjem i gube se kad funkcija završava, s druge strane, Globalna varijabla stvara se kad započinje izvršavanje i gubi se kada program završava.
- Lokalna varijabla ne omogućuje dijeljenje podataka, dok globalna varijabla omogućuje dijeljenje podataka.
- Lokalne varijable pohranjuju se u stog, dok se globalna varijabla pohranjuje na fiksnom mjestu koje je odredio prevoditelj.
- Prosljeđivanje parametara potrebno je za lokalne varijable, dok za globalnu varijablu nije potrebno
Lokalna varijabla
Lokalna varijabla definirana je kao vrsta varijable koja je deklarirana unutar programskog bloka ili potprograma. Može se koristiti samo unutar potprograma ili bloka koda u kojem je deklariran. Lokalna varijabla postoji dok se blok funkcije ne izvrši. Nakon toga automatski će se uništiti.
Primjer lokalne varijable
public int add(){int a =4;int b=5;return a+b;}
Ovdje su 'a' i 'b' lokalne varijable
Globalna varijabla
Globalne varijable u programu je varijabla definirana izvan potprograma ili funkcije. Ima globalni opseg, što znači da zadržava vrijednost tijekom cijelog životnog vijeka programa. Stoga mu kroz program može pristupiti bilo koja funkcija definirana u programu, osim ako je zasjenjena.
Primjer:
int a =4;int b=5;public int add(){return a+b;}
Ovdje su 'a' i 'b' globalne varijable.
Lokalna varijabla vs. Globalne varijable
Evo nekoliko temeljnih razlika između lokalnih i globalnih varijabli.
Parametar | Lokalno | Globalno |
---|---|---|
Opseg | Deklarira se unutar funkcije. | Deklarira se izvan funkcije. |
Vrijednost | Ako nije inicijalizirana, pohranjuje se vrijednost smeća | Ako nije inicijalizirana, nula se pohranjuje kao zadana vrijednost. |
Doživotno | Stvara se kad funkcija započne izvršavanje, a gubi se kad funkcije prestanu. | Stvara se prije nego što započne globalno izvršavanje programa i gubi se kad se program završava. |
Dijeljenje podataka | Dijeljenje podataka nije moguće jer podacima lokalne varijable može pristupiti samo jedna funkcija. | Dijeljenje podataka je moguće jer više funkcija može pristupiti istoj globalnoj varijabli. |
Parametri | Prosljeđivanje parametara potrebno je za lokalne varijable za pristup vrijednosti u drugoj funkciji | Prosljeđivanje parametara nije potrebno za globalnu varijablu jer je vidljivo u cijelom programu |
Modifikacija vrijednosti varijable | Kada se vrijednost lokalne varijable modificira u jednoj funkciji, promjene nisu vidljive u drugoj funkciji. | Kada se vrijednost globalne varijable izmijeni u jednoj funkciji, promjene su vidljive u ostatku programa. |
Pristupio | Lokalnim varijablama se može pristupiti pomoću izraza, unutar funkcije u kojoj su deklarirane. | Globalnim varijablama možete pristupiti bilo kojom naredbom u programu. |
Pohrana memorije | Pohranjuje se na stog, osim ako nije navedeno. | Pohranjuje se na fiksnom mjestu koje je odredio sastavljač. |
Prednosti korištenja globalnih varijabli
- Globalnoj varijabli možete pristupiti iz svih funkcija ili modula u programu
- Trebate samo jednom deklarirati globalnu varijablu izvan modula.
- Idealno se koristi za pohranu "konstanti" jer vam pomaže zadržati dosljednost.
- Globalna varijabla korisna je kada više funkcija pristupa istim podacima.
Prednosti korištenja lokalnih varijabli
- Korištenje lokalnih varijabli jamči da će vrijednosti varijabli ostati netaknute dok se zadatak izvodi
- Ako nekoliko zadataka promijeni jednu varijablu koja se istodobno izvodi, tada je rezultat možda nepredvidljiv. No, proglašavajući ga lokalnom varijablom, rješava se ovaj problem jer će svaki zadatak stvoriti vlastiti primjerak lokalne varijable.
- Lokalnim varijablama možete dati isto ime u različitim funkcijama, jer ih prepoznaje samo funkcija u kojoj su deklarirane.
- Lokalne varijable brišu se čim završi bilo koja funkcija i oslobađaju memorijski prostor koji zauzima.
Mane upotrebe globalnih varijabli
- Previše varijabli deklarirano je kao globalno, a zatim ostaje u memoriji dok se ne izvrši izvršavanje programa. To može uzrokovati problem s nedostatkom memorije.
- Podatke može mijenjati bilo koja funkcija. Bilo koja izjava napisana u programu može promijeniti vrijednost globalne varijable. To može dati nepredvidive rezultate u okruženjima s više zadataka.
- Ako se globalne varijable ukinu zbog refaktoriranja koda, morat ćete promijeniti sve module gdje su pozvane.
Mane upotrebe lokalnih varijabli
- Proces otklanjanja pogrešaka lokalne varijable prilično je lukav.
- Uobičajeni podaci potrebni za višekratno prosljeđivanje jer dijeljenje podataka između modula nije moguće.
- Imaju vrlo ograničen opseg.
Što je korisnije?
Lokalna i globalna varijabla jednako su važne tijekom pisanja programa na bilo kojem jeziku. Međutim, velik broj globalne varijable može zauzeti ogromnu memoriju. Nepoželjnu promjenu globalnih varijabli postalo je teško prepoznati. Stoga je poželjno izbjegavati deklariranje neželjenih globalnih varijabli.