변수의 영역: 프로그램에서 변수를 사용할 수 있는 범위
변수가 선언된 곳에서 영역이 시작된다
지역변수 : 블록 안에서 선언된 변수
비지역변수 : 블록 밖에서 선언되었지만 블록 안에서 사용될 수 있는 변수
자유변수 : 현재 블록에서 선언되지 않았으나 사용하려는 변수
=> 참조 위치를 찾은 경우(선언이 존재) 비지역 변수
=> 선언을 찾지 못한 경우 오류
정적 부모: 현 블록에 가장 가까운 정적 조상
정적 조상: 현 블록을 문맥적으로 포함하는 모든 블록들
영역 구멍: 비지역변수가 같은 이름의 지역변수 때문에 보이지 않는 영역
블록 밖에서 선언한 비지역변수가 블록 안에서 선언한 지역변수 때문에 사용을 못하는거
동적 영역 규칙도 정적 영역 규칙과 비슷하게
현재 블록에서 선언되지 않은 변수인 경우
호출한 함수를 찾아가며 선언되었는지 확인하고 비지역 변수인지 오류인지 판단한다
특이한건 파이썬은 인터프리터 언어이지만 영역 규칙을 결정할 땐 정적 영역 규칙을 사용한다.
전역 변수 : 모든 블록에서 비지역변수로 취급. 어떤 블록에도 포함되지 않는 곳에서 선언된 변수
보통 코드 보면 맨 위에 선언되곤 한다..
파이썬에선 global 키워드를 사용함
영역 구멍에서 전역변수를 사용하려면 영역 연산자(scope operator)를 이용하면 가능
=> C++에서 영역 연산자 -> ::
이름공간 (namespace)
관련성이 높은 변수와 함수를 하나의 묶음으로 관리하는 영역
1) 이름 공간의 이름과 영역 연산자 :: 를 이용하여 사용 가능
2) 예약어 using을 이용
이론 말고 냅다 코드부터 배워서 개념이 없었는데 이런거였군...
지역변수, 전역변수는 얼추 알고 있긴 했다
함수 안에서 선언된건 지역변수, 모든 곳에서 사용할 수 있는건 전역변수 이런 느낌으로
namespace는 많이 들어봤으나 개념은 첨 알았다.. 약간 class 같다
'대학교' 카테고리의 다른 글
방송대 2025-1학기 수강신청 (0) | 2025.01.17 |
---|---|
완전히 말아먹은 방송대 기말시험 후기 (0) | 2024.12.01 |
멀티웨이 탐색 트리 (0) | 2024.11.17 |
이진 탐색 트리 (BS트리) (0) | 2024.11.17 |
클라우드 컴퓨팅 삽질 - MS Azure로 쇼핑몰 웹 배포하기 (0) | 2024.10.27 |