我写了一个小程序:
#include <iostream>
using namespace std;
int raw(int &x) {
cout<<x<<endl;
cout<<&x<<endl;
}
int main () {
int s= 1;
int &z=s;
raw(s);
raw(z);
return 0;
}
输出是(如预期的那样):
1
0x7fff5ed36894
1
0x7fff5ed36894
它按我的预期工作,但我很好奇这是如何在内部实现的。是函数重载还是其他什么,或者其中一个函数是另一个函数的包装器以提供用户友好性,或者编译器自己进行转换?