C++에서 참조(Reference)는 기존 변수에 대한 별칭(Alias)을 생성하는 기능이다.
포인터와 같이 메모리 주소를 처리하는 효율성을 유지하면서도, 안전하고 간결한 문법을 제공한다.
참조의 특징
참조는 포인터와 목적이 유사하나 동작 방식에 차이가 있다.
- 강제적인 초기화: 참조는 선언 시 반드시 대상을 지정해야 한다.
- 대상 변경 불가: 초기화된 이후 대상을 변경할 수 없다.
- 안전한 사용:
NULL상태가 존재하지 않아 유효성 체크 부담이 적다. - 직관적인 문법:
*나->기호 없이 일반 변수와 동일하게 사용하여 가독성이 높다.
데이터 전달의 효율성
참조는 함수 인자 전달(Call by Reference)에서 중요하다.
대규모 객체를 전달할 때 복사 비용을 절감하기 위해 참조를 사용한다.
const 키워드를 병행하면 원본 수정을 방지하여 코드 안정성을 높인다.
포인터 보완
참조는 포인터의 복잡한 연산을 대체할 수 있다.
원본 데이터를 안전하고 빠르게 처리할 수 있다는 점이 특징이다.
기본적으로 참조를 우선적으로 고려하고, 필요한 경우에만 포인터를 사용하는 것 같다.