// 有以下两个变量 a,b,需求对其中进行交换值,使 a = 2,b = 1
int a = 1;
int b = 2;
通过第三个变量交换
int c = a; // c = 1
a = b; // a = 2
b = c; // b = 1
不通过第三个变量交换
- 通过表达式
a = a + b - (b = a); // a = 1 + 2 - (b = 1) = 2
- 通过 +/- 计算(可能出现溢出)
a = a + b; // a = 1 + 2 = 3
b = a - b; // b = 3 - 2 = 1
a = a - b; // a = 3 - 1 = 2
- 通过 ^ 计算(最快,但要求 a 不等 b)
a = a ^ b;
b = a ^ b;
a = a ^ b;