logo

Statisk i C

Statisk er et nøkkelord som brukes i programmeringsspråket C. Den kan brukes med både variabler og funksjoner, det vil si at vi kan erklære en statisk variabel og statisk funksjon også. En ordinær variabel er begrenset til omfanget den er definert i, mens omfanget av den statiske variabelen er gjennom hele programmet.

Statisk nøkkelord kan brukes i følgende situasjoner:

    Statisk global variabel
    Når en global variabel er deklarert med et statisk nøkkelord, er det kjent som en statisk global variabel. Den er erklært øverst i programmet, og den er synlig gjennom hele programmet.Statisk funksjon
    Når en funksjon er deklarert med et statisk nøkkelord kjent som en statisk funksjon. Dens levetid er gjennom hele programmet.Statisk lokal variabel
    Når en lokal variabel er deklarert med et statisk nøkkelord, er det kjent som en statisk lokal variabel. Minnet til en statisk lokal variabel er gyldig gjennom hele programmet, men omfanget av synligheten til en variabel er det samme som de automatiske lokale variablene. Men når funksjonen endrer den statiske lokale variabelen under det første funksjonskallet, vil denne endrede verdien også være tilgjengelig for neste funksjonskall.Statiske medlemsvariabler
    Når medlemsvariablene er deklarert med et statisk nøkkelord i en klasse, er det kjent som statiske medlemsvariabler. De kan nås av alle forekomster av en klasse, ikke med en spesifikk forekomst.Statisk metode
    Medlemsfunksjonen til en klasse deklarert med et statisk nøkkelord er kjent som en statisk metode. Den er tilgjengelig for alle forekomster av en klasse, ikke med en spesifikk forekomst.

La oss forstå gjennom 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 koden ovenfor kalles func()-funksjonen. I func() blir tellevariabelen oppdatert. Så snart funksjonen fullfører utførelsen, vil minnet til tellevariabelen bli fjernet. Hvis vi ikke vil fjerne tellingen fra minnet, må vi bruke tellingsvariabelen som statisk. Hvis vi erklærer variabelen som statisk, vil ikke variabelen bli fjernet fra minnet selv når funksjonen fullfører utførelsen.

Produksjon

 1 1 

Statisk variabel

En statisk variabel er en variabel som vedvarer verdien på tvers av de forskjellige funksjonskallene.

Syntaks

Syntaksen til en statisk variabel er gitt nedenfor:

arp kommando
 static data_type variable_name; 

La oss se på et enkelt 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 koden ovenfor har vi erklært tellevariabelen som statisk. Når func() kalles oppdateres verdien av count til 1, og under neste funksjonskall blir verdien til count-variabelen 2. Derfor kan vi si at verdien til den statiske variabelen vedvarer i funksjonskallet .

Produksjon

 1 2 

Statisk funksjon

Ettersom vi vet at ikke-statiske funksjoner er globale som standard betyr at funksjonen kan nås utenfor filen også, men hvis vi erklærer funksjonen som statisk, begrenser det funksjonsomfanget. Den statiske funksjonen er kun tilgjengelig i en fil.

Den statiske funksjonen vil se slik ut:

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

Forskjeller s/hv statisk og global variabel

Globale variabler er variablene som er deklarert utenfor funksjonen. Disse globale variablene eksisterer i begynnelsen av programmet, og omfanget forblir til slutten av programmet. Den kan også nås utenfor programmet.

Statiske variabler er begrenset til kildefilen de er definert i, det vil si at de ikke er tilgjengelige for de andre kildefilene.

Både de statiske og globale variablene har statisk initialisering. Her betyr statisk initialisering at hvis vi ikke tildeler noen verdi til variabelen, vil 0 verdi som standard bli tildelt variabelen.

Forskjeller s/h statisk lokal og statisk global variabel

Statisk global variabel

git status

Hvis variabelen er deklarert med et statisk nøkkelord utenfor funksjonen, er det kjent som en statisk global variabel. Den er tilgjengelig gjennom hele programmet.

Statisk lokal variabel

Variabelen med et statisk nøkkelord er deklarert inne i en funksjon er kjent som en statisk lokal variabel. Omfanget av den statiske lokale variabelen vil være den samme som de automatiske lokale variablene, men minnet vil være tilgjengelig gjennom hele programkjøringen. Når funksjonen endrer verdien til den statiske lokale variabelen under ett funksjonskall, vil den forbli den samme selv under neste funksjonskall.

Egenskaper til en statisk variabel

Følgende er egenskapene til en statisk variabel:

  • Minnet til en statisk variabel er allokert innenfor en statisk variabel.
  • Minnet er tilgjengelig gjennom hele programmet, men omfanget vil forbli det samme som de automatiske lokale variablene. Det er
  • verdien vil vedvare på tvers av de ulike funksjonskallene.
  • Hvis vi ikke tildeler noen verdi til variabelen, vil standardverdien være 0.
  • En global statisk variabel kan ikke nås utenfor programmet, mens en global variabel kan nås av andre kildefiler.