#include<iostream>
using namespace std;
void swap_by_pointer(int *p, int *q)
{
int temp = *p; // p指向的变量就是主函数的a变量,*p == a,所以操作的是同一个变量
*p = *q;
*q = temp;
}
void swap_by_reference(int &p, int &q)
{
int temp = p; // 这里的p是主函数里的a别名,操作的是同一个变量
p = q;
q = temp;
}
int main()
{
int a = 10;
int b = 20;
swap_by_pointer(&a, &b); // 指针
cout << "a = " << a << endl;
cout << "b = " << b << endl;
swap_by_reference(a, b); // 引用,别名,这里的a就是形参的p,浅拷贝
cout << "a = " << a << endl;
cout << "b = " << b << endl;
system("pause");
return 0;
}