C++教程:C++中函数变量的引用

2020-01-06 12:10:32丽君


运行结果:
a=2
b=3

在以上这段程序中,swap函数的语句是我们熟悉的交换语句,可是为什么执行了这个swap函数以后,a和b的值并没有交换呢?

在6.2中,我们介绍过,函数是将实参的值赋给了形参。这就像本来我们想交换a碗和b碗里的水,调用了swap函数则是拿来了x碗和y碗,然后把a碗里的水分一点到x碗里,b碗里的水分一点到y碗里,再把x碗和y碗里的水交换。可是,这样的操作有没有将a碗里的水和b碗里的水交换呢?没有。而且,我们还知道,一旦函数运行结束,函数中定义的参数和变量就都会消失,所以就连x碗和y碗也都没有了。

问题到底在于哪里呢?在于我们传给函数的是“水”,而不是“碗”。如果我们直接把a碗和b碗交给函数,那么这个任务就能够完成了。下面我们就来看看如何把“碗”来传递给函数:(程序6.5.2)
#include "iostream.h" 
void swap(int &x,int &y);//用引用传递参数
int main()
{
   int a=2,b=3;