본문/내용
1. 서론
처음 ‘포인터(pointer)’라는 단어를 접했을 때 나는 머릿속이 복잡해졌다. “변수 안에 또 다른 변수의 주소가 들어간다”는 설명을 들었을 때, 그것이 말은 되는데 이해는 되지 않았다. 숫자나 문자처럼 눈에 보이는 값이 아니라, ‘어딘가를 가리키는 정보’가 변수 안에 존재한다는 개념은 너무 추상적이었다. 마치 지도를 보는데 목적지가 아니라 ‘목적지의 좌표’를 다루는 기분이었다. 코드 속에서 와 & 기호가 등장할 때마다 혼란스러웠고, 디버깅 중 “Segmentation Fault”라는 문구를 마주할 때면 이유도 모른 채 프로그램이 멈춰버려 속이 답답했다. 그때는 그저 포인터가 무섭고 복잡한 존재로 느껴졌다.
하지만 시간이 지나며 포인터는 단순한 문법 요소가 아니라, 컴퓨터가 데이터를 다루는 방식을 이해하게 해주는 ‘생각의 도구’라는 사실을 알게 되었다. 포인터는 눈에 보이지 않지만, 모든 데이터의 연결을 가능하게 하는 보이지 않는 실과 같다. 처음에는 그저 메모리 주소를 가리키는 숫자 정도로만 생각했지만, 프로그램이 어떻게 변수들을 저장하고 참조하며, 함수 간에 데이터를 주고받는지를 알게 되면서 그 중요성이 실감되었다. 내…