::public/C++
const
by 해맑은욱
2020. 1. 31.
*const 는 값을 상수화 시킨다.
// 자료형에 대한 값의 상수화.
const int a = 1;
a = 11; // fail - 변수 a의 값 변경 불가
// 포인터에 대한 값의 상수화.
int b = 2;
const int* pb = &b;
*pb = 22; // 포인터 pb를 통한 값 변경은 불가.
b = 22; // b를 통한 값 변경은 가능.
// 포인터의 주소값의 상수화.
int c = 3;
int* const pc = &c;
int cc = 33;
int* const pc = &cc; // 포인터 자신의 값 변경 불가.
*pc = 33; // 포인터 pc를 통해 값 변경은 가능.
// 포인터에 대한 값과 포인터의 주소값 모두 상수화.
int d = 4;
const int* const pd = &d;
*pd = 44; // fail
int e = 5;
pd = &e; // fail
포인터 pd는 d의 주소값만 가리킬 수 있고, pd를 이용하여 d의 값을 변경할 수 없다.
즉, pd 와 *pd 모두 const 이다.