[C++] 참조자(레퍼런스)란? 참조자는 어디에 사용할까?

2023. 8. 9. 09:20Programming/C++

반응형

요즘 회사에서 업무 때문에 다시 C++ 언어를 다시 사용해야 한다. 코드 분석을 하는 도중에 궁금한 점이 생겼다. 함수의 인자로 참조자를 받고 있었다. 왜 참조자를 함수의 인자로 받는 것인지 궁금해서 찾아봤다.

 

참조자(레퍼런스, reference)란?

레퍼런스란 포인터처럼 변수나 상수를 가리키는 방식으로 컨파일러에게 가리키고 있는 변수나 상수에게 또 다른 이름이 있다고 알려주는 것이다.

 

예시

#include <iostream>

int main() {
	int n = 1;
	int& reference_n = n;

	std::cout << "n : " << n << std::endl;
	std::cout << "reference_n : " << reference_n << std::endl;

	n = 4;

	std::cout << "n : " << n << std::endl;
	std::cout << "reference_n : " << reference_n << std::endl;

	reference_n = 2;
 
	std::cout << "n : " << n << std::endl;
	std::cout << "reference_n : " << reference_n << std::endl;

	return 0;
}

실행 결과

n : 1
reference_n : 1
n : 4
reference_n : 4
n : 2
reference_n : 2

 

 

함수의 인자로 참조자를 받는 이유?

함수의 인자를 값으로 받을 때의 한계

  1. 전달하려는 값이 크면 큰 비용이 들어 성능이 저하된다.
  2. 값으로 전달받은 경우 호출자에게 값을 반환하는 유일한 방법은 함수의 반환 값을 사용하는 것이다.

참조자는 이 둘 모두를 해결할 수 있다.

 

 

 

 

참조 

https://modoocode.com/141

https://boycoding.tistory.com/217

반응형