C++:函数的引用传递

来源:百度知道 编辑:UC知道 时间:2024/05/09 15:29:47
int incr10(int& num)
{
cout << endl
<< "Value received = " << num;

num += 10;

return num;
}

这里需要的形参是引用类型.那如果我定义
num = 10
然后直接把这个传递给函数,实际上num不是引用,但是函数却运行的非常良好,有没有朋友说下这其中的一系列内部机制?
类似:"比如当编译器发现实际传来的参数不是引用类型,它会自己先建立个.."

看来你还不是很明白引用的概念

引用是C++中的概念,初学者容易把引用和指针混淆一起。
一下程序中,n是m的一个引用(reference),m是被引用物(referent)。
int m;
int &n = m;
n相当于m的别名(绰号),对n的任何操作就是对m的操作。
所以n既不是m的拷贝,也不是指向m的指针,其实n就是m它自己。
-------------------------
理解了上面你就会明白,你的用法是正常的用法,函数运行结果是正确的也不奇怪:)