先看一段程序:
// PassReference.cpp
#include<iostream>
using namespace std
void f(int& r){
cout<<"r="<<r<<endl;
cout<<"&r="<<&r<<endl;
r=5;
cout<<"r="<<r<<endl;
}
int main(){
int x=47;
cout<<"x="<<x<<endl;
cout<<"&x="<<&x<<endl;
f(x);
cout<<"x="<<x<<endl;
}
生成的结果如下:
从结果中可以看到, 尤其是最后一行,我们可以得到x值已经得到了改变,所以从中知道,当引用当做函数的参数时候,其效果和指针的效果是一样的,既引用传递允许一个函数去修改外部对象,就像传递一个指针所做的那样。