也是在复习时候突然了解到的,取地址符号可以看到一种运算,并不像指针一样是一个类,使用这个非全局变量法交换函数可以很好的理解,关节在于这里的pq不是指针类型,而是始终是int类型的
#include <iostream>
using namespace std;
void niceswap(int &p,int &q)
{
int temp;
temp = p;
p = q;
q = temp;
}
void badswap(int p,int q)
{
int temp;
temp = p;
p = q;
q = temp;
}
int main(void)
{
int p = 3;
int q = 7;
badswap(p,q);
printf("经过badswap后p = %d,q = %d\n",p,q);
niceswap(p,q);
printf("经过niceswap后p = %d,q = %d\n",p,q);
}