Legjobb válasz
globális és helyi: összefügg a hatókörrel, azaz hol használhatók
static: az idővel és a volatilitással, azaz a meddig használhatókkal
A C & C ++ programban a statikus változó csak egyszer van meghatározva (lefoglalt memória és kezdeti érték nulla), még a programvezérlés is újra végrehajtja a deklarációs utasítást. A statikus változó értéke és élettartama megmarad a program végéig, de felhasználható a hatókörön belül.
void staticTest(){
static int i;
printf("\%d\n",i);
i++;
}
void main(){
staticTest();
staticTest();
staticTest();
}
Kimenet:
0
1
2
A fenti példában bemutatjuk a helyi statikus változó használatát.
globális statikus: deklarálhatod a statikus változó globális hatókörét, és ez majdnem megegyezik a többi globális változóval, kivéve, ha a kezdeti értéke nulla, ha nem adsz hozzá értéket.
Válasz
Helyi statikus:
- Az alapértelmezett érték nulla
- Az adatrészben tárolva (bss vagy inicializált) memória
- A hatókör vagy a láthatóság a blokkon vagy a függvényen belül van.
- A helyi statikus változó élettartama csak a programmal kezdődik és ér véget.
Globális statikus:
- Ha egy globális változó statikus, akkor a hatókör vagy a láthatóság csak az adott fájlban található, még akkor sem, ha az externet másik fájlban használjuk . Összekapcsolási hibát ad.
1. példa:
static int a=20;
void xyz()
{
printf("\%d, ", a);
a = 100;
}
int main()
{
printf("\%d, ", a);
{
static int a = 10;
printf("\%d, \n", a);
xyz();
}
printf("\%d", a);
}
// Output is 20, 10, 20, 100