傳統方式
int a = 100;
int b = 200;
int temp = a;
a = b;
b = temp;
求和相減:
int x =5,y=10; //定義兩個變量
x = x + y; //x(15) = 5 + 10;
y = x - y; //y(5) = x(15) - 10;
x = x - y; //x(10) = x(15) - y(5)
異或方式
/**
* 異或運算法則
* 1. a ^ b = b ^ a
* 2. a ^ b ^ c = a ^ (b ^ c) = (a ^ b) ^ c;
* 3. d = a ^ b ^ c 可以推出 a = d ^ b ^ c.
* 4. a ^ b ^ a = b.
*/
int a = 100;
int b = 200;
a = a ^ b; // a = 100 ^ 200 = 175
b = a ^ b; // b = 175 ^ 200 = 100
a = a ^ b; // a = 175 ^ 100 = 100 ^ 200 ^ 100 = 200
異或方式(一行代碼)
int x = 100;
int y = 200;
// 100 ^ (x=y) x = 200
// 100 ^ 200 ^ 200 y = 100
y = x ^ (x = y) ^ y;
推薦使用最後一種方式,注意:異或方式無法對對象進行操作。