본문 바로가기

카테고리 없음

[C++] 참조(referance)를 리턴하는 함수

int& increment(int &val)
{
	val++;
	return val;
}

void main()
{
	int n = 10;
	int &ref = increment(n);

	cout << "n = " << n << endl;
	cout << "ref = " << ref << endl;
}

프로그램 실행화면


함수에서 반환형식으로 참조를 반환할 수도 있다 이럴 떄 어떻게 동작하게 될까?? 우선 main함수에 있는 n과 increment()의 인자가 연결된다. 참조된다.


그리고 인자가 return되기 때문에 ref와 n이 연결된다. 그래서 프로그램 실행화면을 보게 되면 n도 11이라는 값을 출력하게 된다.


사실 프로그램을 보고 헷갈리면 원래 어려운 알고리즘이거나 잘못만든 경우이다. 되도록이면 보고 이해하기 좋게 만들어야 한다. 난 참조를 잘 쓰지 않아 이런 종류로 프로그래밍하지는 않는다.