C++
스코프
Jagbbum
2023. 9. 21. 00:34
스코프란 간단하게 말하면 변수를 사용할 수 있는 범위이다.
int main(){
int block_ex = 0;
.
.
.
block_ex = 6;
}
int x = block_ex;
위와 같은 상황에서 block_ex의 스코프는 main()이다. 그러므로 블록 밖에서 block_ex를 사용하면 에러가 난다.
이러한 상황으로 보면 if문이나 for문에서도 그 안에서 선언된 이름도 밖으로 나오면 에러가 나온다.
static
static은 지역변수를 static 지역변수로 만들어준다. static 지역변수는 이런 특성이 있다.
- 초기화할 때 메모리에 할당되고 종료 시 메모리에서 사라짐
- Block Scope: 변수가 선언된 block애서 참조 가능
이 static은 File Scope를 가지고 컴파일 시 메모리에 할당되는 전역변수에 비해 메모리에서 이점을 볼 수 있다.