변수주기
변수의 스코프(scope)에 따라 변수에 접근할 수 있는 위치가 결정된다.
변수의 주기(duration)는 변수가 생성되고 소멸하는 위치를 결정한다.
이 두 개념은 밀접하게 관련돼있다.
함수 내부에 정의된 변수를 지역 변수(local variable)라고 한다. 지역 변수는 자동 주기(auto duration)를 가지고 있다. 정의되는 시점에서 생성되고 초기화되며, 정의된 블록이 끝나는 지점에서 소멸한다. 또한, 지역 변수는 지역 스코프(블록 스코프라고도 불린다)를 가진다. 이는 선언 시점에서 스코프에 들어가고 정의된 블록 끝에서 소크프에서 벗어나는 걸 의미한다. 스코프 내에서만 변수에 접근할 수 있다.
- 자동 주기(automatic duration)인 변수는 정의 지점에서 생성되며, 정의된 블록이 끝나면 소멸한다.
- 일반 지역 변수 (normal local variable)
- 매개변수
- 정적 주기(static duration)인 변수는 프로그램이 시작될 때 생성되고, 프로그램이 종료하면 소멸한다.
- 전역 변수 (global variable)
- 정적 변수 (static variable)
- 동적 주기(dynamic duration)인 변수는 프로그래머의 요청에 의해 생성되고, 소멸한다.
- 동적으로 할당된 변수 (Dynamically allocated variables)
'Cpp' 카테고리의 다른 글
추상클래스 (0) | 2023.02.27 |
---|---|
외부링크 내부링크 (0) | 2023.02.23 |
Static (0) | 2023.02.23 |
스택 프레임(stack frame) (0) | 2023.02.23 |
프로그램의 실행 과정 메모리 구조 (0) | 2023.02.23 |