1.使用临时变量
void exchange(int &a,int &b)
{
int temp=a;
a=b;
b=temp;
}
2.不使用辅助变量
(1)
void exchange(int &a,int &b)
{
a=a+b;
b=a-b;
a=a-b;
}
(2)
void exchange(int &a,int &b)
{
a=a^b;
b=a^b;
a=a^b;
}
3.使用位移运算符
void exchange(int &a,int &b)
{
b = (__int64)((__int64)a << 32 | (a = b)) >> 32;
}