Zmienne lokalne statyczne
Zmienna zadeklarowana wewnątrz bloku może być poprzedzona słowem kluczowym static. W ten sposób deklarujemy zmienne lokalne statyczne.
{
static int a = 10;
...
}
Różnią się one od zwykłych zmiennych czasem życia, mianowicie:
- zakres ważności zmiennej lokalnej statycznej jest taki, jak zwykłej zmiennej lokalnej.
- czas życia zmiennej jest lokalnej statycznej taki, jak dla zmiennych globalnych.
- zmienne lokalne statyczne można inicjalizować, ale odbędzie się to tylko raz - w momencie ładowania programu do pamięci.
Po co używać zmiennych lokalnych statycznych?
- Zmienne lokalne statyczne przechowują swoją wartość nawet po opuszczeniu bloku, w którym są zadeklarowane. Zachowują się więc jak zmienne globalne.
- Z drugiej strony nie pozwalają one na dostęp do takiej zmiennej za pomocą jej identyfikatora w innych blokach programu. Oznacza to ochronę tej zmiennej przed jej niepoprawnym (często przypadkowym) użyciem w innych fragmentach programu. Zwykła zmienna globalna jest widoczna wszędzie!
Przykład - użycie zmiennej lokalnej statycznej.