不引入第三个变量交换两个变量的方法
这是很多公司面试或者笔试的题目,可以给大家参考下。
一般有两种方法:
1、
一般有两种方法:
1、
void swap(int a,int b)
{
a=a^b;
b=b^a; //b^a相当于 b^a^b 也就是 b^a^b的值就是a了, 下边相同
a=a^b;
}
也有人写成了一句,就是读起来麻烦些:){
a=a^b;
b=b^a; //b^a相当于 b^a^b 也就是 b^a^b的值就是a了, 下边相同
a=a^b;
}
a^=b^=a^=b;
2、void swap(int a,int b)
{
a = a + b ;
b = a - b ;
a = a - b ;
}
{
a = a + b ;
b = a - b ;
a = a - b ;
}