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 포인터 변수를 상수로 만든다
==> 가리키는 대상은 바꾸수 있지만 , 지시하는 포인터는 바꿀수 없다.











+ Recent posts