题目:要求交换a和b的值。(包括设置临时变量和不设置临时变量)
方法一:设置临时变量(常用的)
int a = 3;
int b = 5;
int c = a;
a = b;
b = c;
方法二:不设置临时变量,由于int类型的限制,只能算比较小的数。
a = a + b;
b = a - b; //b = a + b - b;
a = a - b; //a = a - a + b;
方法三:使用位操作符
使用该方法前先了解一下位操作符:
& 按位与(相当于乘法) | 按位或(有0为0) ^按位异或(相同为0不同为1)
并且按位异或支持交换律: a ^ 0 = a; a ^ a = 0;
a = a ^ b;
b = a ^ b; // b = a ^ b ^ b; b = a;
a = a ^ b; // a = a ^ a ^ b; a = b;