더북(TheBook)

6.1 배열

배열(array)은 타입이 같은 오브젝트 여러 개를 하나로 묶는다. 이는 11장에서 설명할 포인터와 더불어 C를 처음 접할 때 상당히 헷갈리기 쉬운 개념이다. C 언어에서 배열과 포인터는 서로 밀접한 관련이 있다. 그래서 두 개념을 설명할 때 ‘닭이 먼저냐 달걀이 먼저냐’란 문제가 발생한다. 배열은 여러모로 포인터와 비슷하고, 포인터는 배열 오브젝트를 가리킨다. 이 책에서는 흔히 설명하는 방식과는 좀 다른 순서로 소개한다. 즉, 배열부터 소개하고 이를 기준으로 설명하다가 나중에 포인터를 소개한다. 순서를 거꾸로 설명한다고 생각할 수도 있지만 여기서 소개하는 모든 내용은 as-if 규칙(TAKEAWAY 5.8) 관점으로 봐야 한다. 먼저 C의 추상 상태 기계에 대한 가정과 일관성을 유지하는 방식으로 배열을 소개한다.

TAKEAWAY 6.1 배열은 포인터가 아니다.

두 개념의 관계에 대해서는 뒤에서 자세히 살펴보기로 하고, 일단 여기서는 배열에 대해 특별히 편견 없이 바라보자. 자칫 C를 제대로 이해하는 데 걸림돌이 될 수 있기 때문이다.

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