使用tmp的常规方法
void Swap(int *a,int *b)
{
int tmp;
tmp = *a;
*a = *b;
*b = tmp;
}
注:这是最好的方法
方法一:使用“+”运算
int a = 15;
int b = 20;
a += b;//a=35.b=20
b = a - b;//b=15,a=35
a = a - b;//a=20,b=15
是否存在溢出风险?
方法二:使用“-”运算
int a = 20;
int b = 30;
a -= b;//a=-10.b=30
b = a + b;//b=20,a=-10
a = b - a;//a=30,b=20
方法三:使用“^”运算
int a = 7;//0000 0111
int b = 8;//0000 1000
a=a^b;//a=0000 1111=15
b=a^b;//b=0000 0111=7
a=a^b;//a=0000 10000=8
这种方法不会增加数的位数,因此不会产生溢出的风险