
포인터에서 const를 int 앞에 붙일 시 pi가 가리키는 대상체가 상수가 되어 대상체를 변경할 수 없고, 포인터는 다른 것을 가리킬 수 있다. 그리고 const를 pi 앞에 붙일 시 포인터 변수 자체가 상수가 되어 다른 것을 가리킬 수 없지만 대상체의 값은 바뀔 수 있다.
포인터에 const를 사용하는 이유는 포인터로 상수를 변경할 수 있기 때문이다. 예를 들어 const int i1= 3; 라는 상수를 정의했을 때 일반적으로 이 상수를 변경할 수 없지만 int* p1 = &i1; 같은 포인터를 사용해서 상수에 접근하려고 생각할 수도 있기 때문이다. 그래서 포인터에 상수를 사용하는 것은 일종의 안전장치이다.
const는 안전성을 보장할 뿐만 아니라 const char* c = "Sangsu"; 처럼 일반 포인터는 하지 못하는 상수를 넘길 수 있다는 장점이 있기 때문에 적극 활용하는 것이 좋다.
'C++' 카테고리의 다른 글
| [C++] 가변 인수 함수 (0) | 2022.01.03 |
|---|---|
| [C++] 함수 포인터 (0) | 2022.01.03 |
| [C++] 문자형 배열 vs 문자형 포인터 (0) | 2022.01.02 |
| [C++] 포인터 배열과 배열 포인터 (0) | 2022.01.02 |
| [C++] 포인터 vs 배열 (0) | 2022.01.02 |