본문 바로가기

공부/c++

레퍼런스 반환함수 사용

반응형

참조 : http://cafe.naver.com/cafec/2033

 

#include <iostream>
using namespace std;

int& f();
int x;

 

int main()
{
    f()=100; // <---- 이해가 안되는 부분...
    cout<<x<<endl;
    return 0;
}

 

int& f()

{
    return x;
}

여기서 결과 값이 100이 나오는데요...

레퍼런스를 제거하고 컴파일 하면 에러가 나더라고요...

x 값이 어떻게 반환이 되는지....

 

함수 f(x)는 x의 address를 반환합니다. 즉 x의 값이 반환되는 것이 아니라 x의 address가 반환됩니다. x의 address에 100의 값을 넣는 것이므로 이 문법은 적법합니다. 이 방법은 여러가지로 유용한 tip이므로 알아두시면 도움이 됩니다.

반응형