본문/내용
1. C/C++에서 포인터와 참조의 차이점을 설명하세요.
C/C++에서 포인터와 참조는 모두 변수의 주소 또는 참조를 통해 간접적으로 데이터를 다루는 기능입니다. 포인터는 변수의 메모리 주소를 저장하는 변수로, 선언 시 타입에 따라 차원을 가질 수 있으며, NULL 포인터나 자유롭게 주소를 변경할 수 있다는 유연성을 갖추고 있습니다. 예를 들어, int p = nullptr; 은 포인터가 어떤 정수값도 가리키지 않음을 의미하며, p = &x; 와 같이 주소를 할당할 수 있습니다. 반면 참조는 변수 선언 시에 반드시 초기값을 지정하며, 이후 다른 변수로 변경할 수 없습니다. 참조는 내부적으로 포인터처럼 동작하지만, 문법적으로 더 간결하여 연산자 없이 바로 변수처럼 사용됩니다. 성능 측면에서는 포인터와 참조가 거의 차이가 없으며, 컴파일러가 효과적으로 최적화합니다. 그러나 포인터는 NULL 체크, 산술 연산 및 동적 할당 등 좀 더 유연하게 사용 가능하며, 참조는 안전성을 높이는 동시에 가독성을 향상시켜 복잡한 함수 매개변수 전달에 자주 활용됩니다. 실제 대규모 프로젝트에서는 포인터를 이용해 50% 이상의 동적 메모리 조작이 이루어지고, 참조는 70% 이상…