*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 이다.

'::public > C++' 카테고리의 다른 글

정수형  (0) 2020.06.29
typedef  (0) 2020.06.15
[오류] C3867 비표준 구문입니다. '&'를 사용하여 멤버 포인터를 만드세요.  (0) 2019.12.15
std::string  (0) 2019.07.18
<iostream>  (0) 2019.06.20

+ Recent posts