728x90
반응형
참조 변수란?
- 참조 변수는 다른 변수를 가져다 쓸 때, 값을 복사해 오지 않고 그대로 참조 하여 사용하는 것 입니다.
#include <stdio.h>
int main()
{
int valiable = 37;
int& refernce = valiable;
printf("%d %d\r\n", valiable, refernce);
valiable++;
printf("%d %d\r\n", valiable, refernce);
refernce++;
printf("%d %d\r\n", valiable, refernce);
}
둘 중 어느변수의 값을 변경하더라도 다른 변수의 값도 똑같이 변경된다. 다시 말해, 참조형 변수와 참조된 변수는 같은 변수로 취급된다. 또한, 참조 변수는 선언시 반드시 초기화 해주어야 하며, 다른값으로 변경이 불가능하다.
#include <stdio.h>
int main()
{
int valiable = 37;
int& refernce = valiable;
printf("%p %p\r\n", &valiable, &refernce);
}
실제로 변수의 주소값 또한 동일하다.
참조 변수 활용법 1
#include <stdio.h>
struct StructName
{
int memberName = 1;
};
class ClassName
{
public:
StructName structName;
};
int main()
{
ClassName className;
int& member = className.structName.memberName;
printf("%d\r\n", className.structName.memberName);
printf("%d\r\n", member);
}
이런식으로 여러 객체를 타고 들어가야 되는 변수의 경우 참조 변수를 이용하여 가독성을 크게 올릴 수 있다.
참조 변수 활용법 2
#include <stdio.h>
void Func(int& parameter)
{
parameter++;
}
int main()
{
int num = 1;
Func(num);
printf("%d\r\n", num);
}
함수에서 매개변수를 역참조할 때도 사용이 가능합니다. 참조변수는 NULL값이 없으니 포인터보다 안전하게 참조가 가능합니다.
반응형
'C++' 카테고리의 다른 글
[C++] 스마트 포인터의 사용법 (0) | 2022.12.14 |
---|---|
[C++] inline 함수의 장단점 (0) | 2022.12.12 |
[C++] 캐스팅(Casting) 하는법 (0) | 2022.10.11 |
[C++] 추상 클래스(Abstract Class)와 인터페이스(Interface)의 차이점 (0) | 2022.10.07 |
[C++] 일반 함수와 가상 함수의 차이점 & 가상 소멸자 사용 이유 (1) | 2022.10.06 |