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:
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.
Når en funktion erklæres med et statisk nøgleord kendt som en statisk funktion. Dens levetid er gennem hele programmet.
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.
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.
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.