#include <iostream>
void swap(int& x, int& y)
{
int t = 0;
t = x;
x = y;
y = t;
}
int main()
{
int a = 123;
int b = 456;
std::cout << "Before:" << std::endl;
std::cout << "a=" << a << std::endl;
std::cout << "b=" << b << std::endl;
swap(a, b);
std::cout << "After:" << std::endl;
std::cout << "a=" << a << std::endl;
std::cout << "b=" << b << std::endl;
return 0;
}
在swap函数前面打断点,调试界面如下:
我们可以发现:a与x,b与y的地址相同,所以我们可以知道,所谓的"引用变量"其实就是一个变量的别名,两者指向同一个地址的内容,对引用变量的操作即是对正式变量的操作。所以利用swap函数,可以成功交换a、b两值。
运行结果如下所示: