8.1 주소를 저장하는 변수: 포인터
사실 포인터는 아주 간단합니다. int a;가 무엇일까요?
정수형 변수 a가 선언되고 4바이트 메모리 방이 할당된다고 설명하였습니다. 그리고 그 메모리 방에는 정수 값이 저장될 수 있습니다. 여기서 메모리 방에 주목하고 간단한 질문을 하나 던지겠습니다.
우리 집에도 있고 친구 집이나 선생님 집 등 모든 집에 있는 것은 무엇일까요?
TV? 또는 컴퓨터? 냉장고? 물론 대부분 집에 있는 것들이 맞지만, 취향에 따라 TV 또는 컴퓨터, 냉장고가 없는 집도 있습니다.
정답은 모든 집에는 그 집에 해당하는 ‘주소’가 있습니다. 심지어 여행을 떠나 호텔에 머무를 때도 우리가 머무르는 호텔의 주소와 방 번호가 있습니다. 메모리도 마찬가지입니다. 우리가 원하는 정보를 저장하는 메모리 방에도 해당하는 메모리 방의 주소가 있습니다.
다시 int a;로 돌아가서 생각해 보겠습니다. int a;가 수행되는 순간 컴퓨터는 정수를 저장할 수 있는 메모리 방을 잡습니다. 컴퓨터 안에는 사용할 수 있는 메모리 방이 수없이 많습니다. 그 중에서 4바이트 크기의 정보를 저장할 수 있는 메모리 방을 골라, 임의로 변수 a라는 이름으로 잡는 것입니다.