1. Variable Scope?
- 변수를 선언했다고 어느 곳에서나 사용 가능한 것은 아니다.
- 이는 곧, 변수가 어떻게 선언되었냐에 따라 사용할 수 있는 범위가 결정된다.
- 마치 파이썬에서 def 안에 선언한 변수가 지역변수로 취급되는 것처럼
- 어떤 함수에서 변수를 선언하면 그 변수는 해당 함수에서만 쓸수 있는데, 이를 지역 범위(local scope)라고 한다.
ex)
###### Input ######
#include <iostream>
void print(){
int a = 5;
std::cout << a << std::endl;
}
int main(){
int a = 3;
std::cout << a << std::endl;
print();
}
###### Output ######
5
3
- 같은 변수명을 써도 각각 다르게 작용된다는 것을 알 수 있다.
2. Global Variable VS Local Variable
- 전역 변수와 지역 변수에 대해서 알아보자.
- 전역변수란? : 네임스페이스나 클래스, 함수 등에 속하지 않고 외부에 선언한 변수를 의미한다. 즉, 선언지점부터 끝까지 유효하다.
- 전역 변수와 지역 변수가 같은 변수명을 가지고 있을 때 각각 호출하는 방식에 대해 알아보자.
ex)
##### INPUT #####
#include <iostream>
int a = 5; //Global Variable
int main(){
int a = 3;
std::cout << a << std::endl;
std::cout << ::a << std::endl;
}
##### Output #####
3
5
- 3이 먼저 출력된것을 보면, 전역 변수보다 지역 변수가 우선순위가 높다라는 것을 알 수 있다.
- 그렇기에 전역 변수를 호출하려면 :: 이라는 전역 범위 연산자를 사용하면 된다.
- 하지만 실제 실무에선 전역 변수를 표현하기위해 g_ 라는 접두사를 붙이도록하자. (ex : g_a)
'CS Study > C++' 카테고리의 다른 글
[C++] [6] 구조체 (struct) (3) | 2024.12.20 |
---|---|
[C++] [5] 함수 (Function) (0) | 2024.12.20 |
[C++] [4] 포인터와 메모리 (2) | 2024.12.20 |
[C++] [3] 형식 변환 (type casting) (0) | 2024.12.18 |
[C++] [1] cout,cin (입출력) (1) | 2024.12.12 |