//#include<iostream>
//using namespace std;
//void swap(int& a1, int& b1)//该情况下,将主函数中的a和b分别传递给了a1和b1,在引用的作用下,a和a1,b和b1分别共用一个空间,
//{
// int t = a1; //在这里进行空间的交换,能够实现形参的交换
// a1 = b1;
// b1 = t;
//}
//void swap1(int a1, int b1)//在该情况下,主函数中的a和b分别传递给了a1和b1,让a1和b1分别开辟了新的空间
//{
// int t = a1; //由于a和a1,b和b1的空间都相互独立,所以这里虽然发生了空间的交换,但是只发生了a1和b1的交换,
// a1 = b1; //对主函数中的a和b的值不造成影响,所以改变后的值未输出,所以主函数的值不会发生交换
// b1 = t;
//}
//void swap2(int *a, int *b)//指针的本质与引用相似,都是对同一空间进行操作
//{
// int t = *a;//a1,b1在这里也会开辟新的空间,这里a1,b1的空间存放的是a,b的地址
// *a = *b; //而*a1,*b1是直接对a,b的地址进行操作,实际交换的是a,b的地址
// *b = t;
//}
//int main()
//{
// int a, b;
// a = 12;
// b = 21;
// cout << "交换前" << "a的值" << a << endl
// <<"b的值" << b << endl;
// //swap(a, b);//会发生值的改变
// //swap1(a, b);//不会发生值的改变
// swap2(&a, &b);//会发生值的改变
// cout << "交换后" << "a的值" << a << endl
// << "b的值" << b << endl;
// return 0;
//}