C语言在不使用临时变量的情况下实现变量交换
思路:看见交换变量,那么最容易考虑到的就是使用临时变量交换。如果不允许使用临时变量那么该如何考虑呢?使用^异或位运算(二进制位相同为0 不同为1),通过利用异或运算的特性可以完成交换。
int main() { int a = 3; int b = 5; a = a ^ b;//0011 ^ 0101 = 0110 b = a ^ b;//0110 ^ 0101 = 0011 a = a ^ b;//0110 ^ 0011 = 0101 printf("a = %d,b = %d",a,b); return 0; }