[C++] 지역 변수(Local Variable) 이름(변수명)과 전역 변수(Global Variable) 이름(변수명)이 같을 경우: Shadowing에 대해서

2025. 7. 11. 17:31·C++

C++에서는 전역 변수와 지역 변수의 이름이 같아도 오류가 나지 않는다.

하지만 같은 이름일 경우, 지역 변수가 전역 변수를 가린다 (Shadowing).

 


예시:

(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
'C++' 카테고리의 다른 글
  • [C++] const char* str와 char* const str의 차이
  • [C++] 연산자 오버로딩 복습 문제 (클래스부터 생성자, 오버로딩까지 구현해보자)
  • [C++] 2차원 배열 선언과 동시에 초기화 vs 선언된 배열 초기화 : 재초기화 오류
바닷속벨루가
바닷속벨루가
바다처럼 넓은 컴퓨터 공부를 재밌고 이해하기 쉽게 알려드립니다. 사랑하고 좋아하는 것에는 빠질 수 밖에 없어
  • 바닷속벨루가
    메론빵개발자
    바닷속벨루가
  • 전체
    오늘
    어제
    • 분류 전체보기 (24) N
      • 스프링 (0)
      • 영어 (2)
      • 2025 일상 (1)
      • C++ (4)
      • 웹 개발 (1)
      • 오토마타와형식언어 (2)
      • Coding Test (3)
        • 백준 (3)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    press reset
    C++
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
바닷속벨루가
[C++] 지역 변수(Local Variable) 이름(변수명)과 전역 변수(Global Variable) 이름(변수명)이 같을 경우: Shadowing에 대해서
상단으로

티스토리툴바