Beste svaret
globalt og lokalt: er relatert til omfang dvs. hvor kan brukes
statisk: er relatert til tid og volatilitet dvs. hvor lenge kan brukes
statisk variabel i C & C ++ – program er definert (tildelt minne og startverdi null) bare en gang, selv programkontroll utfører erklæring på nytt. Verdien og levetiden til den statiske variabelen beholdes til slutten av programmet, men den kan brukes innenfor omfanget.
void staticTest(){
static int i;
printf("\%d\n",i);
i++;
}
void main(){
staticTest();
staticTest();
staticTest();
}
Utgang:
0
1
2
I eksemplet ovenfor demonstreres bruk av lokal statisk variabel.
global statisk: Du kan erklære statiske variabler i globalt omfang, også vil den være nesten den samme som andre globale variabler, bortsett fra at den har en innledende verdi som null, hvis du ikke tildeler den noen verdi.
Svar
Lokal statisk:
- Standardverdien er null
- Lagret i dataseksjonen (bss eller initialisert) av minne
- Omfang eller synlighet er innenfor blokken eller en funksjon
- Levetiden til den lokale statiske variabelen starter og slutter bare med programmet.
Global statisk:
- Hvis en global variabel er statisk, er omfanget eller synligheten bare innenfor den filen, selv bruk av ekstern i en annen fil vil ikke fungere . Det gir koblingsfeil.
Eksempel 1:
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