6.2 불투명 타입으로 사용하는 포인터
지금까지 설명하면서 포인터(pointer) 개념이 여러 번 나왔다. 특히 void* 타입 인수와 리턴 타입 그리고 char const*const로 스트링 레퍼런스를 다뤘다. 이러한 포인터의 핵심은 우리가 다루고자 하는 대상에 대한 정보를 직접 담지 않고, 그 데이터가 있는 곳을 가리키기만 하는 것이다. C에서는 포인터를 다음과 같이 *로 표기한다.
char const*const p2string = "some text";
이 포인터를 그림으로 표현하면 다음과 같다.
▲ 그림 6-5 p2string의 내부 구조
앞에서 본 배열인 jay0과 비교해 보자. 이 배열에는 스트링을 구성하는 문자가 모두 담겨 있다.
char jay0[] = "jay";
▲ 그림 6-6 jay0 배열의 구조
처음에는 포인터의 속성 중에서도 몇 가지만 알아도 된다. 포인터를 바이너리로 표현하는 방식은 플랫폼에서 결정할 영역이므로 우리가 신경 쓸 필요는 없다.