본문 바로가기

C++

[C++] 지역 범위 (Local Scope)

반응형

지역 변수는 영역을 벗어나면 사용할 수 없게 된다. 지역 변수가 차지하고 있던 메모리는 그 지역 변수가 영역을 벗어날 때 '스택(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