1、借助中间量交换 (so easy)
int x = 2;
int y = 5;
int temp = x;
x = y;
y = temp;
2、位移运算交换(一个数对另外一个数执行异或操作两次,还是原来的数)
int x = 10;
int y = 20;
x = x ^ y;
y = x ^ y;
x = x ^ y;
x = x ^ y; 此时x的值为x ^ y;
y = x ^ y; 此时的x经上面的运算变成x ^ y,所以y = x ^ y ^ y = x;
x = x ^ y; 此时的y经上面的运算变成 x,所以x = x ^ y ^ x = y; 实现两个数的互换
3、数值相加减交换(如果 x 和 y 的数值过大的话,超出 int 的值会损失精度)
int x = 2;
int y = 5;
x = x + y; //x = 7
y = x - y; //y = 7 - 5 = 2
x = x - y; //x = 7 - 2 = 5