Zmienna statyczna – w programowaniu jest to zmienna, która w danym bloku programu posiada dokładnie jedną instancję i istnieje przez cały czas działania programu. W języku C++ każda zmienna globalna jest jednocześnie zmienną statyczną.
Zmienna statyczna w bloku funkcji Zmienna statyczna zadeklarowana w bloku funkcji, zgodnie z definicją pamięta swoją wartość pomiędzy wywołaniami funkcji, co nie jest możliwe przy użyciu zwykłych zmiennych. Przykład w C++:
#include <iostream>
int podajStatyczna() { static int x = 0; // deklaracja, definicja i zainicjowanie zmiennej statycznej return ++x; // zwiększamy „x” i zwracamy
int podajZwykla() { int x = 0; // deklaracja zwykłej zmiennej return ++x; // zwiększamy „x” i zwracamy
int main() { std::cout << podajStatyczna() << std::endl; //wyświetli 1 std::cout << podajStatyczna() << std::endl; //wyświetli 2
std::cout << podajZwykla() << std::endl; //wyświetli 1 std::cout << podajZwykla() << std::endl; //wyświetli 1