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