언어/C
C/C++의 const(상수)
DangDang's
2019. 4. 1. 10:47
상수(Constant)는 변수의 반대 개념이다.
변수는 상황에 따라 값을 변경할 수 있지만, 상수는 그 값을 변경할 수가 없다.
상수로 어떻게 선언을 할 수 있을까?
선언을 하는 방법은 두가지가 있다.
첫 번째 ->
#define을 통해서 선언하는 것이다.
ex) #define MAX 100
이를 매크로 상수라고 부른다.
이 부분은 컴파일러가 처리하는 것이 아니라, 전처리기기 부분에서 처리를 해준다.
그 후에컴파일을 하고 나서, MAX라고 쓰여진 부분은 100으로 바뀌게 된다.
아래의 그림 참고
두 번째 ->
const 지시자를 통해 변수를 상수화 하는 것이다.
const 지시자는 자료형의 앞에 붙을 수도 있고, 자료형의 뒤에 붙을 수도 있다.
그 차이는 포인터형 자료형에서 볼 수 있다.
const int * var; 이라면, var은 상수만을 가리키는 포인터가 된다.
즉, var가 가리키는 대상은 변경이 가능하지만, 가리키는 값을 변경이 불가능하다.
int * const var; 이라면, var은 변수를 가리키는 상수형 포인터가 된다.
즉, 포인터가 가리키는 위치는 변경 할 수 없고, 가리키는 값은 변경이 가능하다.