헷갈리는 부분 정리하는 겁니다. 틀린부분 있으면 댓글로 달아주세요.
아래 두 줄 먼저 보겠습니다.
int const *ptb = &value;
const int *ptc = &value;
이 두 줄은 완전히 같은 문장입니다.
단순히 int 와 const의 위치만 바뀐거죠.
의미는 *ptb(*ptc) 를 상수로 만드는 겁니다.
이 말은 참조연산자를 통해 원래 값인 value 값을 바꿀수 없다는 말입니다.
*ptb = 2;
이렇게 못한다는 거죠.
하지만 주소값을 새로 할당하는 건 됩니다.
ptb = &new;
정리해보면 *ptb는 l-value로 불가능, ptb는 가능입니다.
int *const pta = &value;
pta의 경우죠.
pta = &new;
이렇게 할 수 없다는 말입니다.
pta는 오직 value값의 주소만을 가지게 되는 문장이 첫 줄입니다.
정리해보면 *pta는 l-value로 가능, pta는 불가능입니다.
댓글과 공감은 정말 큰 힘이 됩니다.