Static je ključna riječ koja se koristi u programskom jeziku C. Može se koristiti i s varijablama i s funkcijama, tj. možemo deklarirati i statičku varijablu i statičku funkciju. Obična varijabla ograničena je opsegom u kojem je definirana, dok je opseg statičke varijable u cijelom programu.
Statička ključna riječ može se koristiti u sljedećim situacijama:
Kada je globalna varijabla deklarirana sa statičnom ključnom riječi, tada je poznata kao statička globalna varijabla. Deklariše se na vrhu programa, a vidljivost je kroz cijeli program.
Kada je funkcija deklarirana sa statičkom ključnom riječi poznatom kao statička funkcija. Njegov životni vijek je tijekom cijelog programa.
Kada je lokalna varijabla deklarirana sa statičkom ključnom riječi, tada je poznata kao statička lokalna varijabla. Memorija statičke lokalne varijable važeća je kroz cijeli program, ali je opseg vidljivosti varijable isti kao i automatskih lokalnih varijabli. Međutim, kada funkcija modificira statičku lokalnu varijablu tijekom prvog poziva funkcije, tada će ta modificirana vrijednost također biti dostupna za sljedeći poziv funkcije.
Kada su varijable članice deklarirane statičkom ključnom riječi u klasi, to je poznato kao statičke varijable članice. Mogu im pristupiti sve instance klase, a ne određena instanca.
Funkcija članica klase deklarirana ključnom riječi static poznata je kao statička metoda. Dostupan je svim instancama klase, a ne određenom instancom.
Shvatimo kroz primjer.
#include int main() { printf('%d',func()); printf(' %d',func()); return 0; } int func() { int count=0; // variable initialization count++; // incrementing counter variable return count; }
U gornjem kodu poziva se funkcija func(). U func(), varijabla brojanja se ažurira. Čim funkcija završi svoje izvršenje, memorija varijable brojanja bit će uklonjena. Ako ne želimo ukloniti count iz memorije, tada moramo koristiti count varijablu kao statičku. Ako varijablu deklariramo kao statičnu, tada varijabla neće biti uklonjena iz memorije čak ni kada funkcija završi svoje izvršenje.
Izlaz
1 1
Statička varijabla
Statička varijabla je varijabla koja zadržava svoju vrijednost tijekom različitih poziva funkcija.
funkcija java podniza
Sintaksa
Sintaksa statičke varijable dana je u nastavku:
static data_type variable_name;
Pogledajmo jednostavan primjer statičke varijable.
#include int main() { printf('%d',func()); printf(' %d',func()); return 0; } int func() { static int count=0; count++; return count; }
U gornjem kodu deklarirali smo varijablu count kao statičnu. Kada se pozove func(), vrijednost count ažurira se na 1, a tijekom sljedećeg poziva funkcije, vrijednost varijable count postaje 2. Stoga možemo reći da vrijednost statičke varijable ostaje unutar poziva funkcije .
Izlaz
1 2
Statička funkcija
Kao što znamo da su nestatičke funkcije globalne prema zadanim postavkama znači da se funkciji može pristupiti i izvan datoteke, ali ako deklariramo funkciju kao statičnu, onda to ograničava opseg funkcije. Statičkoj funkciji može se pristupiti samo unutar datoteke.
abeceda kao brojevi
Statička funkcija bi izgledala ovako:
static void func() { printf('Hello javaTpoint'); }
Razlike c/b statičke i globalne varijable
Globalne varijable su varijable koje su deklarirane izvan funkcije. Ove globalne varijable postoje na početku programa, a njihov opseg ostaje do kraja programa. Može mu se pristupiti i izvan programa.
java lokalni datum
Statičke varijable ograničene su na izvornu datoteku u kojoj su definirane, tj. nisu im dostupne druge izvorne datoteke.
I statičke i globalne varijable imaju statičku inicijalizaciju. Ovdje statička inicijalizacija znači da će varijabli prema zadanim postavkama biti dodijeljena vrijednost 0 ako ne dodijelimo nikakvu vrijednost varijabli.
Razlike c/b statičke lokalne i statičke globalne varijable
Statička globalna varijabla
Ako je varijabla deklarirana ključnom riječi static izvan funkcije, tada je poznata kao statička globalna varijabla. Dostupan je kroz cijeli program.
Statička lokalna varijabla
Varijabla sa statičnom ključnom riječi deklarirana je unutar funkcije poznata je kao statička lokalna varijabla. Opseg statičke lokalne varijable bit će isti kao i automatskih lokalnih varijabli, ali će njezina memorija biti dostupna tijekom izvođenja programa. Kada funkcija modificira vrijednost statičke lokalne varijable tijekom jednog poziva funkcije, ona će ostati ista čak i tijekom sljedećeg poziva funkcije.
Svojstva statičke varijable
Sljedeća su svojstva statičke varijable:
- Memorija statičke varijable alocirana je unutar statičke varijable.
- Njegova je memorija dostupna kroz cijeli program, ali opseg će ostati isti kao i automatske lokalne varijable. Njegovo
- vrijednost će se zadržati tijekom različitih poziva funkcija.
- Ako varijabli ne dodijelimo nikakvu vrijednost, tada će zadana vrijednost biti 0.
- Globalnoj statičkoj varijabli ne može se pristupiti izvan programa, dok se globalnoj varijabli može pristupiti putem drugih izvornih datoteka.