logo

Statika u C

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:

    Statička globalna varijabla
    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.Statička funkcija
    Kada je funkcija deklarirana sa statičkom ključnom riječi poznatom kao statička funkcija. Njegov životni vijek je tijekom cijelog programa.Statička lokalna varijabla
    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.Statičke varijable članice
    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.Statička metoda
    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.