반응형
참조변수란?
참조변수는 C++문법으로 이미 선언된 변수를 다른 이름으로 부르는 변수이다.
변수의 가명 혹은 변수가 이어져 있다고 생각하면 될 것 같다.
용도
참조 변수는 public과 private여부에 관계 없이 값 변경이 가능하다.
외부의 함수에서 private변수에 접근할 때 쓸 수 있다.
int a = 100;
int& b = a; // 반드시 선언과 동시에 초기화 시켜주어야 한다.
포인터와의 차이점
포인터와 유사하고 비슷한 용도로 쓰이지만 다음과 같은 차이점이 있다.
포인터
- 간접 접근을 통해 기억장소를 참조 (포인터 변수에 접근 → 포인트 변수가 가리키는 주소로 다시 접근)
- NULL 가능
참조변수
- 직접 접근을 통해 기억장소를 참조 (다이렉트로 변수에 접근)
- NULL 불가 (선언과 동시에 초기화)
포인터 예)
void main()
{
int* p1;
int v1 = 100;
int v2;
p1 = &v1; // p1은 v1의 주소를 가리킨다
v2 = *p1; // v2에 p1이 가리키는 주소의 값(v1)을 넣는다
cout << v2;
}
참조변수 예)
void main()
{
int v1 = 100;
int& v2 = v1; // 선언과 동시에 초기화
cout << v2 << endl;
v2=200; // v2의 값을 변경
cout << v1; // v1의 값도 변경된다.
}
반응형