1.中间变量法
1.1核心代码
//交换a与b
int a=10,b=5,c;
c=a;
a=b;
b=c;
1.2 适用范围
a.交换变量较少
b.对空间利用率要求不高
c.任意相同的数据类型
1.3 补充
循环体内可设置中间变量,待循环结束中间变量将会被系统回收掉,使空间利用率提高
记忆口诀:中间先收,自第二行起,每行首与前一行尾一致,每行尾与后一行首一致
2.加减法
2.1核心代码
//交换m,n
int m=99,n=23;
m=m+n;
n=m-n;
m=m-n;
2.2适用范围
a.仅适用于数值类型
b.加减运算得到的值不能超过该数值类型的临界值
2.3 补充
记忆口诀:一加两减,赋值交替来
3.异或法
3.1核心代码
交换x,y
int x=18,y=77;
x=x^y;
y=x^y;
x=x^y;
3.2 适用范围
仅用于数值类型
任意数值,此任意指的是不限定大小(可为临界值)
3.3 补充
记忆口诀:交替接收,异或运算始终如一
一个数无论在什么位置执行异或运算两次,其结果一定是本身