http://www.winapi.co.kr/clec/cpp2/15-1-2.htm
===> const 키워드 바로 다음 대상이 상수가 되는데 타입 앞에 있으면 대상체가 상수가 되며 변수명 앞에 있으면 변수만 상수가 된다.
상수 지시 포인터(Pointer to Constant)
const int *pi2=&ar[0];
pi2++; // 포인터가 다른 대상체를 가리킬 수 있다.
*pi2=0; // 에러 : 대상체가 상수이므로 변경할 수 없다.
==> 포인터 변수로 선언되었으므로 이 포인터가 가리키는 대상체는 정수형 상수
==> 지시하는 포인터는 바꿀수 있지만, 지시하고 있는 대상은 바꿀수 없다.
지시 하는 곳이 상수 이다.( 가리키는 대상이 상수 )
==> int const *는 const int *와 같은 표현이며 대상체가 상수인데 const의 위치가 직관적이지 않아서 잘 사용되지 않는다.
상수 포인터(Constant Pointer)
int * const pi3=&ar[0];
pi3++; // 에러 : 포인터가 다른 대상체를 가리킬 수 없다.
*pi3=0; // 대상체는 변경할 수 있다.
==> pi3 포인터 변수를 상수로 만든다
==> 가리키는 대상은 바꾸수 있지만 , 지시하는 포인터는 바꿀수 없다.