static 변수
static으로 선언한 변수는 함수 내부에 선언해도 함수 return시 메모리를 반환하지 않는다. 프로그램 시작 시점에 초기화된다.
static 변수는 디버깅시 유용하게 사용된다. 이를테면 함수가 몇 번 호출되었는지 세고 싶을때 static 변수를 사용 가능하다.
메모리 관점에서 보자면 static 변수는 이미 할당된 메모리를 재사용하는 변수라고 볼 수 있다.
void doSomething()
{
static int a = 1;
++a;
cout << a << endl;
}
int main()
{
doSomething();
doSomething();
doSomething();
doSomething();
}

전역변수와 static 변수의 차이점은 접근 가능성이라고 할 수 있다.
static 변수는 메모리만 고정될 뿐 접근은 static 변수를 접근할 수 있는건 스코프 내에서만 가능하다.
하지만 전역변수는 접근 범위를 스코프로 분리할 수 없기 때문에 부주의한 변경의 우려가 있다.
'C++ 학습' 카테고리의 다른 글
| [C++] auto 키워드 (0) | 2023.10.21 |
|---|---|
| [C++] internal linkage, external linkage (0) | 2023.10.14 |
| [C++] 스코프 (1) | 2023.10.03 |
| [C++] 연산자 (0) | 2023.10.01 |
| [C++] 심볼릭 상수 (0) | 2023.09.28 |