정적 변수

컴퓨터 프로그래밍에서 정적 변수(靜的變數, )는 정적으로 할당되는 변수이며, 프로그램 실행 전반에 걸쳐 변수의 수명이 유지된다.

기억 장소가 콜 스택에서 할당 및 할당 해제되는, 수명이 더 짧은 자동 변수(지역 변수가 일반적으로 자동임)와는 반대되는 개념이다. 즉, 기억 장소가 힙 메모리에 동적 할당되는 객체와 반의어이다. 정적 메모리 할당은 일반적으로 관련 프로그램을 실행하기 앞서 컴파일 시간에 메모리를 할당하는 것을 일컬으며 이는 메모리가 런타임 중에 필요할 때 할당되는 동적 메모리 할당이나 자동 메모리 할당과는 다르다.

C 및 관련 언어에서는 정적 변수와 기타 개념들 모두 static 키워드가 사용된다.

범위

예 
아래는 C에서의 정적 지역 변수의 예이다.
#include <stdio.h>

void func() {
	static int x = 0;
	/* x는 func()가 5번 호출될 동안 단 한번 초기화되었고,
	변수는 함수가 호출되는 동안 총 5번 증가한다.
	x의 최종적인 값은 5이다. */
	x++;
	printf("%d\n", x); // x 값을 출력한다
}

int main() { // main 안의 int argc, char *argv[]는 특정 프로그램에서는 선택 사항이다
	func(); // 출력: 1
	func(); // 출력: 2
	func(); // 출력: 3
	func(); // 출력: 4
	func(); // 출력: 5
	return 0;
}

각주 

메모리 관리
변수 (컴퓨터 과학)