더북(TheBook)

6.2 불투명 타입으로 사용하는 포인터

지금까지 설명하면서 포인터(pointer) 개념이 여러 번 나왔다. 특히 void* 타입 인수와 리턴 타입 그리고 char const*const로 스트링 레퍼런스를 다뤘다. 이러한 포인터의 핵심은 우리가 다루고자 하는 대상에 대한 정보를 직접 담지 않고, 그 데이터가 있는 곳을 가리키기만 하는 것이다. C에서는 포인터를 다음과 같이 *로 표기한다.

char const*const p2string = "some text";

이 포인터를 그림으로 표현하면 다음과 같다.

▲ 그림 6-5 p2string의 내부 구조

앞에서 본 배열인 jay0과 비교해 보자. 이 배열에는 스트링을 구성하는 문자가 모두 담겨 있다.

char jay0[] = "jay";

▲ 그림 6-6 jay0 배열의 구조

처음에는 포인터의 속성 중에서도 몇 가지만 알아도 된다. 포인터를 바이너리로 표현하는 방식은 플랫폼에서 결정할 영역이므로 우리가 신경 쓸 필요는 없다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.