〔面试题〕无需额外变量交换两个变量的方法
两种方法:
1.使用异或
2.使用加减
1.使用异或
1 void swap(int a,int b)
2 {
3 a=a^b;
4 b=b^a; //b^a相当于 b^a^b 也就是 b^a^b的值就是a了, 下边相同
5 a=a^b;
6 }
也有人写成了一句,就是读起来麻烦些:)2 {
3 a=a^b;
4 b=b^a; //b^a相当于 b^a^b 也就是 b^a^b的值就是a了, 下边相同
5 a=a^b;
6 }
a^=b^=a^=b;
2.使用加减
1 void swap(int a,int b)
2 {
3 a = a + b ;
4 b = a - b ;
5 a = a - b ;
6 }
2 {
3 a = a + b ;
4 b = a - b ;
5 a = a - b ;
6 }