logo

Statika v C

Static je ključna beseda, ki se uporablja v programskem jeziku C. Lahko se uporablja tako s spremenljivkami kot s funkcijami, kar pomeni, da lahko deklariramo statično spremenljivko in tudi statično funkcijo. Navadna spremenljivka je omejena na obseg, v katerem je definirana, medtem ko je obseg statične spremenljivke v celotnem programu.

končni stroj

Statična ključna beseda se lahko uporablja v naslednjih primerih:

    Statična globalna spremenljivka
    Ko je globalna spremenljivka deklarirana s statično ključno besedo, je znana kot statična globalna spremenljivka. Naveden je na vrhu programa in je viden v celotnem programu.Statična funkcija
    Ko je funkcija deklarirana s statično ključno besedo, znano kot statična funkcija. Njegova življenjska doba je ves čas programa.Statična lokalna spremenljivka
    Ko je lokalna spremenljivka deklarirana s statično ključno besedo, je znana kot statična lokalna spremenljivka. Pomnilnik statične lokalne spremenljivke je veljaven v celotnem programu, vendar je obseg vidnosti spremenljivke enak kot pri samodejnih lokalnih spremenljivkah. Ko pa funkcija med prvim klicem funkcije spremeni statično lokalno spremenljivko, bo ta spremenjena vrednost na voljo tudi za naslednji klic funkcije.Statične spremenljivke člana
    Ko so spremenljivke članice deklarirane s statično ključno besedo v razredu, je to znano kot statične spremenljivke članice. Do njih lahko dostopajo vsi primerki razreda, ne pa določen primerek.Statična metoda
    Članska funkcija razreda, deklarirana s ključno besedo static, je znana kot statična metoda. Dostopen je z vsemi primerki razreda, ne z določenim primerkom.

Razumejmo skozi primer.

 #include int main() { printf('%d',func()); printf('
%d',func()); return 0; } int func() { int count=0; // variable initialization count++; // incrementing counter variable return count; } 

V zgornji kodi se kliče funkcija func(). V func() se spremenljivka štetja posodobi. Takoj ko funkcija zaključi svojo izvedbo, bo pomnilnik spremenljivke štetja odstranjen. Če štetja ne želimo odstraniti iz pomnilnika, moramo spremenljivko count uporabiti kot statično. Če spremenljivko deklariramo kot statično, potem spremenljivka ne bo odstranjena iz pomnilnika, tudi ko funkcija zaključi svojo izvedbo.

Izhod

 1 1 

Statična spremenljivka

Statična spremenljivka je spremenljivka, ki ohrani svojo vrednost med različnimi klici funkcij.

Sintaksa

Sintaksa statične spremenljivke je podana spodaj:

 static data_type variable_name; 

Poglejmo preprost primer statične spremenljivke.

lebdenje v css
 #include int main() { printf('%d',func()); printf('
%d',func()); return 0; } int func() { static int count=0; count++; return count; } 

V zgornji kodi smo spremenljivko count razglasili za statično. Ko se pokliče func(), se vrednost count posodobi na 1, med naslednjim klicem funkcije pa vrednost spremenljivke count postane 2. Zato lahko rečemo, da vrednost statične spremenljivke ostane znotraj klica funkcije .

Izhod

 1 2 

Statična funkcija

Ker vemo, da so nestatične funkcije privzeto globalne, pomeni, da je do funkcije mogoče dostopati tudi zunaj datoteke, vendar če funkcijo razglasimo kot statično, to omeji obseg funkcije. Do statične funkcije je mogoče dostopati samo znotraj datoteke.

Statična funkcija bi izgledala takole:

 static void func() { printf('Hello javaTpoint'); } 

Razlike med črno-belo statično in globalno spremenljivko

Globalne spremenljivke so spremenljivke, ki so deklarirane zunaj funkcije. Te globalne spremenljivke obstajajo na začetku programa, njihov obseg pa ostane do konca programa. Dostop je možen tudi izven programa.

niz formata java

Statične spremenljivke so omejene na izvorno datoteko, v kateri so definirane, kar pomeni, da niso dostopne drugim izvornim datotekam.

Tako statične kot globalne spremenljivke imajo statično inicializacijo. Tukaj statična inicializacija pomeni, da če spremenljivki ne dodelimo nobene vrednosti, bo spremenljivki privzeto dodeljena vrednost 0.

Razlike med črno-belo statično lokalno in statično globalno spremenljivko

Statična globalna spremenljivka

Če je spremenljivka deklarirana s statično ključno besedo zunaj funkcije, je znana kot statična globalna spremenljivka. Dostopen je v celotnem programu.

Statična lokalna spremenljivka

Spremenljivka s ključno besedo static, ki je deklarirana znotraj funkcije, je znana kot statična lokalna spremenljivka. Obseg statične lokalne spremenljivke bo enak samodejnim lokalnim spremenljivkam, vendar bo njen pomnilnik na voljo ves čas izvajanja programa. Ko funkcija med enim klicem funkcije spremeni vrednost statične lokalne spremenljivke, bo ta ostala enaka tudi med naslednjim klicem funkcije.

Lastnosti statične spremenljivke

Sledijo lastnosti statične spremenljivke:

  • Pomnilnik statične spremenljivke je dodeljen znotraj statične spremenljivke.
  • Njegov pomnilnik je na voljo v celotnem programu, vendar bo obseg ostal enak kot pri samodejnih lokalnih spremenljivkah. Njegovo
  • vrednost se bo obdržala med različnimi klici funkcij.
  • Če spremenljivki ne dodelimo nobene vrednosti, bo privzeta vrednost 0.
  • Do globalne statične spremenljivke ni mogoče dostopati zunaj programa, medtem ko je do globalne spremenljivke mogoče dostopati z drugimi izvornimi datotekami.