statikus adattípus változó neve
Statikus lokális változók
Ha egy függvény változója statikus, a változó megőrzi értékét a függvényhívások között.
// Példa1.c#include
int fun1 ()
int szám = 0;
szám ++;
visszatérés száma;
int fun2 ()
statikus int szám = 0;
szám ++;
visszatérés száma;
int main ()
printf ("fun1 első hívás visszatér:% d \ n", fun1 ());
printf ("fun1 2. hívás visszatér:% d \ n \ n", fun1 ());
printf ("fun2 1. hívás visszatér:% d \ n", fun2 ());
printf ("fun2 2. hívás visszatér:% d \ n", fun2 ());
visszatér 0;
Az 1. példában.c, két funkciónk van: fun1 () és fun2 (). Ban ben fun1 (), deklarálunk egy változót (számot) és inicializáljuk 0-ra. Ezután növeljük a számláló változót, és visszaadjuk a kapott értéket. Használata fő(), hívjuk fun1 () kétszer, és minden alkalommal 1-es értéket adunk vissza, mert a számláló változó törlődik a híváskor fun1 () kész. Ban ben fun2 () statikus változónak nyilvánítottuk a gróf változót. Ezért értéke megmarad. Használata fő(), hívjuk fun2 () kétszer: első alkalommal 1-es értéket adunk vissza, másodszor pedig 2-t.
Statikus globális változók
A statikus globális változó ugyanúgy viselkedik, mint a többi globális változó, de más C programból nem érhető el.
Statikus függvények
C-ben a függvények alapértelmezés szerint globálisak. Ha azonban statikus függvényt deklarálunk, akkor a függvény helyi, és nem érhető el egy másik C programból.
Statikus változók inicializálása
Ha egy statikus változó nincs kifejezetten inicializálva, akkor 0-ként inicializálódik.
// 2. példa.c#include
int main ()
statikus int i;
printf ("i értéke:% d \ n", i);
visszatér 0;
A 2. példában.c, deklaráltunk egy i statikus változót, amely nincs inicializálva. Mivel azonban a változó statikus, automatikusan inicializálódik 0-ra.
Fontos megjegyezni, hogy a statikus változót állandó literálral kell inicializálni; nem használhatjuk a függvény visszatérési értékét egy statikus változó inicializálására.
// 3. példa.c#include
int fun1 ()
visszatérés 5;
int main ()
statikus int i = fun1 ();
printf ("i értéke:% d \ n", i);
visszatér 0;
A 3. példában.c, megpróbálunk inicializálni egy statikus változót a visszatérő érték felhasználásával fun1 (). Amint azonban láthatja, a kód fordításakor hiba jelenik meg.
Összegzés
A statikus változó élettartama és a program élettartama megegyezik.
Ha egy statikus változó nincs inicializálva, akkor az alapértelmezett 0 értéket vesz fel.
Sem a globális statikus változó, sem a statikus függvény nem érhető el egy olyan programtól, amely eltér attól a programtól, amelyben meghatározták.