Oznacza to, że jeżeli w danym bloku zdefiniowane będą dwie zmienne: jedna lokalna, a druga statyczna, i zostaną one zainicjowane w ich definicjach, to przypisanie wartości inicjującej do zmiennej lokalnej nastąpi za każdym razem przy wejściu do danego bloku, a do zmiennej statycznej tylko raz przy pierwszym wejściu do danego bloku.

+ Porównanie zmiennej lokalnej, statycznej i globalnej w języku język C, C++ element zmienna lokalna zmienna statyczna zmienna globalna kod źródłowy#include "stdio.h" int x; int plus(int liczba) { int x=10; x=x+liczba; printf("Wynik: %d\n",x); return x; } int main() { x=1; /* bez znaczenia */ x=plus(1); x=plus(2); x=plus(3); return 0; }#include "stdio.h" int x; int plus(int liczba) { static int x=10; x=x+liczba; printf("Wynik: %d\n",x); return x; } int main() { x=1; /* bez znaczenia */ x=plus(1); x=plus(2); x=plus(3); return 0; }#include "stdio.h" int x; int plus(int liczba) { /* brak zmiennej lokalnej */ x=x+liczba; printf("Wynik: %d\n",x); return x; } int main() { x=1; x=plus(1); x=plus(2); x=plus(3);