Cel mai bun răspuns
global și local: este legat de domeniul de aplicare, adică unde poate fi utilizat
static: este legat de timp și volatilitate, adică cât timp poate fi utilizat
variabila statică în programul C & C ++ este definită (memorie alocată și valoarea inițială zero) o singură dată, chiar și controlul programului execută din nou declarația declarației. Valoarea și durata de viață a variabilei statice sunt păstrate până la sfârșitul programului, dar pot fi utilizate în interiorul domeniului.
void staticTest(){
static int i;
printf("\%d\n",i);
i++;
}
void main(){
staticTest();
staticTest();
staticTest();
}
Ieșire:
0
1
2
În exemplul de mai sus este demonstrată utilizarea variabilei statice locale.
static global: puteți declara variabila statică în domeniul global, de asemenea, va fi aproape la fel ca și alte variabile globale, cu excepția faptului că are valoarea inițială ca zero, dacă nu îi atribuiți nicio valoare.
Răspundeți
Statică locală:
- Valoarea implicită este zero
- Stocată în secțiunea de date (bss sau inițializat) de memorie
- Scopul sau vizibilitatea se află în interiorul blocului sau al unei funcții
- Durata de viață a variabilei statice locale începe și se termină numai cu programul.
Global static:
- Dacă o variabilă globală este statică, scopul sau vizibilitatea sunt numai în fișierul respectiv, chiar și utilizarea externă într-un alt fișier nu va funcționa . Oferă erori de legătură.
Exemplul 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