• 4.1.1 지역 변수(Local Variables)
  • 4.1.2 지역 변수의 범위와 지속기간(Scope and Duration)

4.1.1 지역 변수(Local Variables)

 

지역 변수란 함수 내에서 정의된 변수를 뜻한다. 우리가 C++를 다룰 때 가장 흔하게 쓰는 main 함수도 함수이므로 main 함수 내부에 정의한 변수 또한 지역 변수가 된다. 

#include <iostream>

int main()
{
	using namespace std;

	int apple = 5;

	cout << apple << endl;

	return 0;
}

코드에서 apple이 지역 변수가 되겠다.


4.1.2 지역 변수의 범위와 지속기간(Scope and Duration)

 

지역 변수는 사용할 수 있는 범위와 지속기간이 존재한다. 지역 변수의 범위란 변수에 접근할 수 있는 위치를 의미하고 지역 변수의 지속기간은 변수가 생성되고 소멸하는 위치를 말한다.

 

우선 지역 변수의 지속기간을 확인해보자!

#include <iostream>

int main()
{
	using namespace std;

	int apple = 5; // 지역 변수 생성

	cout << apple << endl;

	return 0; // 지역 변수 소멸
}

앞의 예제에서 지역 변수의 생성과 소멸에 대한 위치를 표시하였다. 지역 변수가 초기화되는 순간 생성되고 함수를 벗어나게 되는 순간에 지역 변수는 소멸하게 된다.

 

지역 변수의 범위에 대해서는 여러가지 케이스로 한번 확인해보자!

#include <iostream>

int main()
{
	using namespace std;

	apple = 1; //error

	int apple = 5;

	cout << apple << endl;

	return 0;
}

지역 변수가 정의되기 이전에 사용하는 것은 불가능하다. 아직 apple이라는 변수가 생성되기 이전이기 때문에 접근할 수 없는 범위가 된다.

 

#include <iostream>

int main()
{
	using namespace std;

	int apple = 5;

	cout << apple << endl;

	return 0;
}

apple = 3; // error

함수 밖에서는 사용할 수가 없다. main 함수를 거치면서 이미 생성이 되었지만 소멸도 수행되면서 apple이라는 변수가 삭제되었으므로 접근할 수 없는 범위이다.

 

#include <iostream>

int main()
{
	using namespace std;

	int apple = 5;

	cout << apple << endl;

	{
		apple = 1;
		int apple = 3; // 내부 apple 생성
		cout << apple << endl;
	} // 내부 apple 소멸

	//apple에 커서 올리면 같은 apple이 표시된다.
	cout << apple << endl;

	return 0;
}

이번에는 내부 블럭을 하나 더 생성한 뒤에 apple이라는 지역 변수를 하나 더 생성해주었다. 이 경우 apple이 두 개가 존재하는데, 가장 가까운 범위에서 정의된 apple을 사용하게 된다. 이러한 말이 어려울 수 있는데, 요즘 visual studio는 이 부분에 대해 서포트를 해준다.

변수 클릭을 하면 같은 변수에 대해 표시해준다.

위처럼 변수를 클릭하면 같은 메모리를 가리키는 변수에 대해 친절하게 표시해준다.

+ Recent posts