Hva er forskjellen mellom lokale statiske og globale statiske variabler?


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

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *