C-Programmierung

Variablenverdeckung

Seiteneffekte | | Statische Variablen

In jedem Anweisungsblock können zusätzliche lokale Variablen deklariert werden.

Der Geltungsbereich dieser Variablen erstreckt sich ausschlieslich auf den Block, in dem sie definiert wurden. Ausserhalb ihres Geltungsbereichs sind lokalen Variablen unsichtbar.

Bei Namensgleichheit von einer innerhalb und einer ausserhalb deklarierten Variable ist die jeweilige innere Variable sichtbar, d.h. sie verdeckt die namensgleiche äussere Variable. Mehrfachdeklarationen innerhalb des gleichen Blocks sind unzulässig.

int x=0; /* global variable */

{
   int x=1; /* outer variable shadows global variable */

   printf("%d\n", x);

   {
      int x=2; /* inner x shadows outer x */
      printf("%d\n", x);
   }

   printf("%d\n", x);
}

output:

1
2
1


Seiteneffekte | | Statische Variablen

Options: