- 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는 이 부분에 대해 서포트를 해준다.
위처럼 변수를 클릭하면 같은 메모리를 가리키는 변수에 대해 친절하게 표시해준다.
'Programming Language > C++' 카테고리의 다른 글
Section 4.3. 외부 연결 (0) | 2021.11.11 |
---|---|
Section 4.2. 전역 변수와 정적 변수 (0) | 2021.11.10 |
Section 3.5. 비트 플래그와 비트 마스크 (0) | 2021.11.07 |
Section 3.4. 이진수의 보수 개념과 비트단위 연산자 (0) | 2021.11.04 |
Section 3.3. 관계 연산자와 논리 연산자 (0) | 2021.11.03 |