引用是将参数名与实参代替,是同一个值
普通函数调用是将实参的值复制给实参,形参进行计算,然后将计算结果存在一个临时变量中,执行析构函数时将临时变量的值复制到调用函数的环境变量中,临时变量释放。
以下是一个数值交换函数的调用:
#include <QCoreApplication>
#include <iostream>
void swap(int& x, int& y);
using namespace std;
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
int i ,j;
std::cin >> i >> j;
swap(i,j);
cout<<i<<j<<endl;
return a.exec();
}
void swap(int& x ,int& y)
{
int temp = x;
x = y;
y = temp;
}
运行结果:
若不用引用,则两数值不能交换。