반응형
const
값을 고정 시키고 변경이 불가능하게 만든다. (상수화)
변경이 불가능하기 때문에 선언과 동시에 초기화를 해야한다.
* 상수의 이름은 대문자로 표시. 띄어쓰기는 언더바로 표시하는게 관례이다.
1. const가 맨 앞부분에 선언
포인터변수가 가리키는 변수의 값 변경 불가
int a = 20;
const int* ptr = &a;
*ptr = 30; // 에러
a = 40; // 성공
2. const가 포인터 변수의 이름 앞에 선언
포인터변수가 가리키는 변수 변경 불가
int a1 = 20;
int a2 = 30;
int* const ptr = &a1; // 포인터 변수 ptr이 상수가 됨
ptr = &a2; // 에러
*ptr = 40; // 성공
3. 둘 다
const int * const ptr = &a;
*ptr = 20; // 에러
ptr = &age; // 에러
static const
const를 사용하면, 해당 클래스 내부에서만 인식할 수 있다.
그러나 static const로 선언을 하게 되면, 해당 클래스뿐만 아니라 외부 클래스에서도 인식할 수 있는 상수가 된다.
반응형