#include <iostream>
using namespace std;
int& maxInt(int a, int b);
int main(void)
{
int i = 12, j = 13;
int k = maxInt(i, j);
printf("&k = %p, maxInt() = %p\n", &k, &maxInt(i, j));
printf("&i = %p, &j = %p\n", &i, &j);
}
int& maxInt(int a, int b){
printf("func &a = %p, &b = %p\n", &a, &b);
return (a>b) ? a : b;
}
이 소스코드에서,
maxInt() 리턴값의 주소와 j의 주소가 서로 같지 않은데
저는 레퍼런스를 리턴하는 함수는
여기서는 maxInt 함수거 b의 레퍼런스를 리턴하므로,
b의 레퍼런스는 j이므로 int k = maxInt(i, j) 는 int k = j 와 똑같이 되는건줄 알고 있는데,
그렇다면 &maxInt(i, j)와 &j의 값이 서로 같아야 하는것 아닌가요?