C++에서는 전역 변수와 지역 변수의 이름이 같아도 오류가 나지 않는다.
하지만 같은 이름일 경우, 지역 변수가 전역 변수를 가린다 (Shadowing).
예시:

이 경우, 지역 변수와 전역 변수의 이름이 같다.
func() 함수 안에서 value는 지역 변수 5를 출력하며,
전역 변수 10은 "가려져서"(Shadowing) 출력되지 않는다.
전역 변수를 꼭 사용하고 싶다면?
전역 변수와 지역 변수의 이름이 같아도 :: 연산자 (스코프 연산자) 를 사용하면 전역 변수에 접근할 수 있다.

요약
항목 설명
| 가능 여부 | 전역 변수와 지역 변수 이름 같아도 가능 |
| 우선순위 | 지역 변수가 우선 (전역 변수를 가림) |
| 전역 변수 접근법 | ::변수명 (예: ::value) |
하지만 이름이 겹치면 코드 가독성이 떨어지므로, 실무에서는 보통 피하는 것이 좋다.
'C++' 카테고리의 다른 글
| [C++] const char* str와 char* const str의 차이 (1) | 2025.08.05 |
|---|---|
| [C++] 연산자 오버로딩 복습 문제 (클래스부터 생성자, 오버로딩까지 구현해보자) (6) | 2025.08.04 |
| [C++] 2차원 배열 선언과 동시에 초기화 vs 선언된 배열 초기화 : 재초기화 오류 (0) | 2025.07.11 |