728x90
[Do it C++ 완전정복_ 139~147p]
레퍼런스 변수 (참조 변수)
이미 존재하는 변수에 또 다른 이름(별칭)을 부여
| & 위치 | 의미 |
| 변수 선언 시 | 참조 변수 선언 (int& ref = a;) |
| 값 앞에 | 주소 연산자 (&a → 변수의 주소 반환) |
레퍼런스 변수 특징
- 선언 시 반드시 참조할 원본 변수를 초기화해야 한다.
- 독립적으로 존재할 수 없고, 한 번 참조 후에는 다른 변수를 참조할 수 없다.
- 상수 참조(const reference) 로 읽기 전용 참조가 가능하다.
int a = 10;
int& ref = a; // a의 참조(별칭)
ref = 20; // a도 함께 변경됨
cout << a; // 20 출력
const int& const_ref = a; // a의 값은 읽을 수 있으나 변경 불가
레퍼런스 변수를 이용한 함수 전달
- 함수에 인자를 전달할 때, 레퍼런스(참조) 를 사용하면 함수 내부에서 원본 값을 변경할 수 있다.
void swapRef(int& a, int& b) { // 참조로 전달
int temp = a;
a = b;
b = temp;
}
int main() {
int a = 5, b = 10;
swapRef(a, b); // 원본 교환
cout << "a=" << a << ", b=" << b << endl; // a=10, b=5
}

레퍼런스와 포인터 차이
- 레퍼런스의 기능은 포인터로도 할 수 있지만 비교적 안전하게 사용이 가능하다.
- 포인터처럼 원본 값에 접근할 수 있지만 원본 자체 공간의 크기, 메모리 주소 등은 변경하지 못한다.
(메모리가 누수되지 않도록 안전성을 보장)
'C++ > C++ 문법' 카테고리의 다른 글
| C++ 반복문과 제어문 (0) | 2025.10.13 |
|---|---|
| C++ 조건문 (if, switch) (0) | 2025.10.13 |
| C++ 함수의 인자 전달 방식 (값, 참조, 주소) (0) | 2025.10.13 |
| C++ 구조체 (struct) (1) | 2025.10.13 |
| C/C++ 메모리 구조 (0) | 2025.10.13 |