TAKEAWAY 6.17 포인터는 불투명(opaque) 오브젝트다.
다시 말해 C 언어에서 허용하는 연산으로만 포인터를 다룰 수 있다는 뜻이다. 이런 연산은 대부분 뒤에서 자세히 소개할 것이다. 지금은 처음 소개하는 것인 만큼 초기화, 대입, 평가에 대해서만 설명한다.
포인터가 다른 변수와 구분되는 속성 중 하나는 상태다.
TAKEAWAY 6.18 포인터는 유효한 상태(valid)거나 널 상태(null)거나 미확정 상태(indeterminate)에 있다.
예를 들어 변수 p2string은 항상 유효한 상태에 있다. 왜냐하면 스트링 리터럴인 "some text>"를 가리키고 있는데다, 두 번째 const에 의해 이러한 연결 관계가 변하지 않기 때문이다.
포인터 타입에서 널 상태라는 말은 우리가 잘 아는 0과 관련이 있다. 때로는 이와 동일한 값인 false를 의미할 수도 있다.
TAKEAWAY 6.19 포인터를 0으로 초기화하거나 0을 대입하면 그 포인터는 널 상태가 된다.
다음 예를 살펴보자.
char const*const p2nothing = 0;
이 특수한 상황을 그림으로 표현하면 다음과 같다.
▲ 그림 6-7 널 상태 포인터