1. 변수의 구분 (classification of Variable)
ㅇ 데이터 타입에 따른 구분 ☞ 데이터 타입(자료형) 참조
- 값 타입 변수 (기본 자료형)
- 참조 타입 변수 (참조 자료형)
ㅇ 변수에 값 전달 방법에 따른 구분
- 대입문에 의해, 데이터를 특정 변수에 전달하는 방법 : 대입 (assignment)
- 키보드 입력에 의해, 데이터를 변수에 전달하는 방법 : 초기화 (initialization)
- 함수 값 리턴에 의해, 변수에 전달하는 방법 : 함수로부터 값 리턴 (function return)
ㅇ 변수를 특징짓는 주요 속성들의 구분
- 변수 고유 속성들
. 이름 (식별자), 주소 (기억공간 위치), 타입 (기억 크기,연산 형태), 값 (Value)
- 변수가 수행되는 위치/시간에 의존적인 속성들 ☞ C 언어 기억클래스 참조
. 유효 범위(Scope), 유효 기간(Lifetime), 프로그램 환경(Program Environment)
ㅇ 유효범위(스코프,Scope)에 따른 구분
- 전역 변수 (Global Variable)
. 그 범위가 전체 프로그램이 됨
- 지역 변수 (Local Variable)
. 통상, 블록(함수 등) 내에서 만 선언,정의,사용되는 변수
ㅇ 유효기간(수명,Lifetime)에 따른 구분
- 정적 변수 (Static Variable)
. 한 번 할당되면, 프로그램 종료시까지 회수되지 않고 기억장소에서 살아있는 변수
- 자동 변수 (Automatic Variable)
. 프로그램 제어가 블록(함수 등) 내에 진입할 때 기억장소 할당이 되고,
. 빠져나갈 때 기억장소 해제가 일어남
ㅇ 참조 환경(Reference Environment)에 따른 구분
- 속박 변수 (Bound Variable)
. 블록(함수 등)에 속박된(묶여있는) 변수를 말함
. 함수의 인수 및 지역 변수들을 일컬음
. 한편, 속박 변수들 만을 포함하는 함수를 닫힌 함수 라고 함
- 자유 변수 (Free Variable)
. 블록(함수 등) 밖에서 정의된 변수들을 말함
. 속박 변수 이외의 변수(외부에서 정의된 변수)들을 일컬음
. 한편, 그 내부에 자유 변수를 갖는 함수를 열린 함수 라고 함