不用中间变量交换两个变量值
方法1.
int a=10,b=5;
a=a+b; //a=15,b=5
b=a-b; //a=15,b=10
a=a-b; //a=5,b=10
缺点:容易溢出。
void Swap(int * a,int * b)
{
*a=*a+*b;
*b=*a-*b;
*a=*a-*b;
}
方法2:
int a=10,b=5;
a=a-b; //a=5,b=5
b=a+b; //a=5,b=10
a=b-a; //a=5,b=10
方法3:
a=a^b;
b=a^b;
a=a^b;
方法4:
int a=10;b=5;
a=a*b; // a=50,b=5
b=a/b; //a=50,b=10
a=a/b; //a=5,b=10

浙公网安备 33010602011771号