본문 바로가기
C++

[C++] 참조 변수 사용법

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값이 없으니 포인터보다 안전하게 참조가 가능합니다.

반응형