Care este diferența dintre variabilele statice locale și globale?


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

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *