〔面试题〕无需额外变量交换两个变量的方法

来源:互联网 发布:广州中智软件 编辑:程序博客网 时间:2024/04/28 15:10

两种方法:
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 

也有人写成了一句,就是读起来麻烦些:)

a^=b^=a^=b;  


2.使用加减

1 void swap(int a,int b)
2 {
3 = a + b ;
4 = a - b ;
5 = a - b ;
6 }
原创粉丝点击