참조 변수(Reference Variable)는 이미 존재하는 변수에 붙이는 또 다른 이름, 즉 별칭(alias)입니다. 참조 변수는 한 번 어떤 변수를 가리키면 다른 변수를 참조하도록 변경할 수 없으며, 선언과 동시에 반드시 초기화해야 합니다. 또한 NULL 값을 가질 수 없다는 점이 포인터와 큰 차이를 보입니다.
C++에서는 '&' 연산자를 사용하여 참조 변수를 선언합니다.
참조 변수 선언 문법
datatype variable_name; // 일반 변수 선언 datatype& refer_var = variable_name; // 참조 변수 선언 및 초기화
각 구성 요소의 의미는 다음과 같습니다.
datatype − int, char, float 등 변수의 자료형을 나타냅니다.
variable_name − 사용자가 직접 지정한 원본 변수의 이름입니다.
refer_var − 원본 변수를 가리킬 참조 변수의 이름입니다.
참조 변수 예제 코드
다음은 참조 변수를 선언하고 사용하는 간단한 C++ 프로그램입니다.
#include <iostream>
using namespace std;
int main() {
int a = 8;
int& b = a; // b는 a의 별칭
cout << "변수 a의 값 : " << a;
cout << "\n참조 변수 b의 값 : " << b;
return 0;
}실행 결과
변수 a의 값 : 8 참조 변수 b의 값 : 8
코드 설명
위 프로그램에서 먼저 정수형 변수 a를 선언하고 값 8로 초기화했습니다.
int a = 8;
그다음 변수 b를 참조 변수로 선언하여 변수 a를 가리키도록 했습니다.
int& b = a;
이제 b와 a는 메모리상 동일한 변수를 공유하므로, 어느 한쪽의 값을 변경하면 다른 쪽 값도 함께 변경됩니다. 출력 결과에서 두 변수 모두 8을 출력하는 것을 확인할 수 있습니다.
참조 변수의 주요 특징 정리
- 선언 시 반드시 초기화해야 합니다.
- 한 번 참조 대상이 정해지면 다른 변수를 참조하도록 변경할 수 없습니다.
- NULL이 될 수 없습니다.
- 포인터처럼 별도의 메모리 주소 조작 없이 원본 변수에 직접 접근할 수 있어 코드가 더 안전하고 읽기 쉽습니다.