반응형
지역 변수는 영역을 벗어나면 사용할 수 없게 된다. 지역 변수가 차지하고 있던 메모리는 그 지역 변수가 영역을 벗어날 때 '스택(stack)' 메모리로 반납된다. 반납된 메모리는 다음 지역 변수가 사용할 수 있도록 대기 상태가 된다.
중괄호로 새로운 영역을 설정하고 지역변수를 선언하면, main() 함수의 'x'와 다른 변수 x(지역 변수)가 선언된다. 이때 중괄호 안의 'x'는 중괄호가 끝나면 사라지게 된다.
#include<iostream>
using namespace std;
int main() {
int x = 0;
cout << x << " " << &x << '\n'; // x의 주소 출력
// 새로운 영역 설정(다른 메모리 사용)
{
int x = 0; // 지역변수 선언
cout << x << " " << &x << '\n'; // x의 주소 출력
}
cout << x << " " << &x << '\n'; // x의 주소 출력
}
중괄호로 새로운 영역을 설정하고 지역변수를 선언하지 않으면, main() 함수의 'x'가 사용된다.
#include<iostream>
using namespace std;
int main() {
int x = 0;
cout << x << " " << &x << '\n'; // x의 주소 출력
{
x = 1;
cout << x << " " << &x << '\n';
}
cout << x << " " << &x << '\n';
}
※ 메모리 주소를 이용하여 지역변수를 확인할 수 있다. (주소가 같으면 동일한 변수)
참고: Inflearn, 홍정모의 따라하며 배우는 C++, '1.7 지역 범위'
반응형
'C++' 카테고리의 다른 글
[C++] 소스/헤더 파일 만들기 (0) | 2021.09.08 |
---|---|
[C++] 함수의 선언 및 정의 (0) | 2021.08.20 |
[C++] 함수(function) 정의 (0) | 2021.08.08 |
[C++] 입력 및 출력 (0) | 2021.08.08 |
[C++] 실습: Hello World 출력하기 (0) | 2021.08.02 |