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 }