logo

Statisk i C

Statisk er et nøgleord, der bruges i programmeringssproget C. Det kan bruges med både variabler og funktioner, dvs. vi kan også erklære en statisk variabel og statisk funktion. En almindelig variabel er begrænset til det omfang, den er defineret i, mens omfanget af den statiske variabel er i hele programmet.

Statisk nøgleord kan bruges i følgende situationer:

    Statisk global variabel
    Når en global variabel er erklæret med et statisk nøgleord, er det kendt som en statisk global variabel. Det er erklæret øverst i programmet, og dets synlighed er gennem hele programmet.Statisk funktion
    Når en funktion erklæres med et statisk nøgleord kendt som en statisk funktion. Dens levetid er gennem hele programmet.Statisk lokal variabel
    Når en lokal variabel er erklæret med et statisk nøgleord, er det kendt som en statisk lokal variabel. Hukommelsen af ​​en statisk lokal variabel er gyldig i hele programmet, men omfanget af synlighed af en variabel er det samme som de automatiske lokale variabler. Men når funktionen ændrer den statiske lokale variabel under det første funktionskald, vil denne ændrede værdi også være tilgængelig for det næste funktionskald.Statiske medlemsvariable
    Når medlemsvariablene er erklæret med et statisk nøgleord i en klasse, er det kendt som statiske medlemsvariabler. De kan tilgås af alle forekomster af en klasse, ikke med en bestemt forekomst.Statisk metode
    Medlemsfunktionen af ​​en klasse, der er erklæret med et statisk nøgleord, er kendt som en statisk metode. Den er tilgængelig for alle forekomster af en klasse, ikke med en specifik forekomst.

Lad os forstå gennem et eksempel.

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

I ovenstående kode kaldes func()-funktionen. I func() bliver tællevariablen opdateret. Så snart funktionen fuldfører sin udførelse, vil hukommelsen for tællevariablen blive fjernet. Hvis vi ikke ønsker at fjerne tællingen fra hukommelsen, skal vi bruge tællevariablen som statisk. Hvis vi erklærer variablen som statisk, vil variablen ikke blive fjernet fra hukommelsen, selv når funktionen fuldfører sin udførelse.

Produktion

 1 1 

Statisk variabel

En statisk variabel er en variabel, der bevarer sin værdi på tværs af de forskellige funktionskald.

Syntaks

Syntaksen for en statisk variabel er angivet nedenfor:

arp kommando
 static data_type variable_name; 

Lad os se på et simpelt eksempel på statisk variabel.

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

I ovenstående kode har vi erklæret tællevariablen som statisk. Når func() kaldes, bliver værdien af ​​count opdateret til 1, og under det næste funktionskald bliver værdien af ​​count-variablen 2. Derfor kan vi sige, at værdien af ​​den statiske variabel forbliver i funktionskaldet .

Produktion

 1 2 

Statisk funktion

Da vi ved, at ikke-statiske funktioner er globale som standard, betyder det, at funktionen også kan tilgås uden for filen, men hvis vi erklærer funktionen som statisk, så begrænser det funktionsomfanget. Den statiske funktion kan kun tilgås i en fil.

Den statiske funktion ville se ud som:

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

Forskelle s/h statisk og global variabel

Globale variabler er de variable, der erklæres uden for funktionen. Disse globale variabler findes i begyndelsen af ​​programmet, og dets omfang forbliver indtil slutningen af ​​programmet. Det kan også tilgås uden for programmet.

Statiske variabler er begrænset til kildefilen, hvori de er defineret, dvs. de er ikke tilgængelige for de andre kildefiler.

Både de statiske og globale variabler har statisk initialisering. Her betyder statisk initialisering, at hvis vi ikke tildeler nogen værdi til variablen, vil der som standard blive tildelt 0 værdi til variablen.

Forskelle s/h statisk lokal og statisk global variabel

Statisk global variabel

git status

Hvis variablen er erklæret med et statisk nøgleord uden for funktionen, er det kendt som en statisk global variabel. Den er tilgængelig i hele programmet.

Statisk lokal variabel

Variablen med et statisk nøgleord er erklæret inde i en funktion er kendt som en statisk lokal variabel. Omfanget af den statiske lokale variabel vil være den samme som de automatiske lokale variabler, men dens hukommelse vil være tilgængelig under hele programmets udførelse. Når funktionen ændrer værdien af ​​den statiske lokale variabel under et funktionskald, vil den forblive den samme selv under det næste funktionskald.

Egenskaber for en statisk variabel

Følgende er egenskaberne for en statisk variabel:

  • Hukommelsen af ​​en statisk variabel er allokeret inden for en statisk variabel.
  • Dens hukommelse er tilgængelig i hele programmet, men omfanget vil forblive det samme som de automatiske lokale variabler. Dens
  • værdi vil bestå på tværs af de forskellige funktionskald.
  • Hvis vi ikke tildeler nogen værdi til variablen, vil standardværdien være 0.
  • En global statisk variabel kan ikke tilgås uden for programmet, mens en global variabel kan tilgås af andre kildefiler.