CS Study/C++
[C++] [8] 레퍼런스 변수(reference variable)
23학번이수현
2024. 12. 20. 04:39
0. 왜 레퍼런스 변수가 필요할까?
#include <iostream>
void updateValue(int *ptr){
*ptr = 42;
}
int main(){
int x = 10;
updateValue(&x);
return 0;
}
- 이런 복잡한 포인터 문법 없이 더 직관적으로 값을 수정하는 방법이 있다.
- 그것을 레퍼런스 변수라고 한다.
1. 레퍼런스 변수란?
- 레퍼런스 변수는 기존 변수를 별칭(alias)처럼 참조하는 변수이다.
int x = 10;
int &ref = x;
ref = 20;
std::cout << x;
1.1. 포인터와 차이점
포인터 | 레퍼런스 변수 |
별도로 메모리를 차지함 | 메모리 공간 차지하지 않음 |
*를 사용해 간접 참조 | 바로 값을 사용 가능 |
초기화 후 다른 변수 참조 가능 | 초기화 시 한 번만 변수 참조 가능 |
2. 레퍼런스 변수의 주요 특징
2.1. 선언과 초기화 :
- 반드시 선언과 동시에 초기화해야 함.
- int &r; //컴파일 오류
2.2. 불변성:
- 선언된 이후 다른 변수를 참조할 수 없음
2.3. 편리성:
- 포인터처럼 * 연사자를 사용하지 않아도 변수처럼 사용 가능.
3. 레퍼런스 변수의 사용 사례
3.1. 함수 매개변수로 사용:
void swap(int &a, int &b) {
int temp = a;
a = b;
b = temp;
}
3.2. 함수 리턴 값으로 사용:
int &getElement(int arr[], int index) {
return arr[index];
}
4. 결론
- 레퍼런스 변수는 코드의 간결성과 가독성을 높이고, 효율적인 메모리 사용을 가능하게 함