상수란 사전적 의미는 변하지 않는 값을 의미합니다.
const int i = 0;//상수 변수 정의
i = 3;//상수 변수라 값 변경이 불가능
int j = 0;//일반 변수 정의
const int e = j;//const 변수를 정의해서 일반 변수인 j를 대입
일단 변수 옆에 const를 붙이면 그 변수는 값 변경이 불가능합니다. 그래서 const를 붙인 변수가 상수 변수이지만,
그 변수가 항상 컴파일 할때마다 변하지 않는 값(실행마다 변하지 않는)은 아닙니다. const 변수를 정의할 때 초기값을 일반 변수를 넣어버리면..
위의 예제는 그래도 j값이 0인 것을 알 수 있지만 만약 j가 사용자로부터 입력받은 값이면 j가 무슨 값인지 컴파일중에는 알 수 없기 때문에 e도 역시 알 수 없는 값이 됩니다.
그래서 컴파일 할때마다 변하지 않는 값을 대입해 초기화한 const 변수가 바로 그 값입니다.
컴파일 할 때마다 변하지 않는 값들은 다음과 같습니다.
- 숫자 : 1, 2, 3, ...
- 문자열 상수 : "안녕"
- 문자 : 'a'
- 위의 설명 대로 초기화한 const 변수
- 위 상수들 만을 조합한 식 : 5+2
- ... 말고도 더 있지만 천천히 알아보겠습니다.
※ 컴파일러에서는 위의 예제와 같이 j를 e에 넣을 때 j가 0임을 알 수 있는 값임에도 불구하고 e를 컴파일 할때마다변하지 않는 값으로 취급하지 않습니다. 어쨋든 j는 변수이기 때문에 j가 0인 것까지 확인하지 않는 것 같습니다.
'C, C++' 카테고리의 다른 글
반복문 (0) | 2019.11.26 |
---|---|
switch 조건문 (0) | 2019.11.26 |
if 조건문 (0) | 2019.11.26 |
연산자 목록 및 우선순위 (0) | 2019.11.26 |
C언어 출력 함수들 (0) | 2019.11.26 |