#include <iostream>
using namespace std;
/*值传递,局部变量a和b的值确实在调用swap0时变化了,当结束时,他们绳命周期结束*/
void swap0(int a, int b)
{
int tem = a;
a = b;
b = a;
}
/*没有初始化指针就开始用,该函数是有问题的*/
void swap1(int *a, int *b)
{
int *tem; /*注意tem没有分配内存*/
*tem = *a;
*a = *b;
*b = *tem;
}
/*函数内只是指针的变化,指针的值没有变化*/
void swap2(int *a, int *b)
{
int *tem;
tem = a;
a = b;
b = tem;
}
/*指针传递实现两个数的交换*/
void swap3(int *a, int *b)
{
int tem;
tem = *a;
*a = *b;
*b = tem;
}
/*指针传递实现两个数的交换*/
void swap4(int &a, int &b)
{
int tem;
tem = a;
a = b;
b = tem;
}
int main()
{
int num1 = 1;
int num2 = 2;
//swap0(num1, num2);
//swap1(&num1, &num2);
//swap2(&num1, &num2);
//swap3(&num1, &num2);
swap4(num1, num2);
cout << num1 << endl << num2 << endl;
return 0;
}