1. 问题描述:对于int a,b;在不使用其他变量的情况下,编程实现a,b的交换。
2.解题思路:用位运算中的异或(^)运算符
#include <stdio.h>
int main()
{
int a = 66;
int b = 99;
printf("Swap Before:a = %d, b = %d.\n",a,b);
a ^= b; /* a = a ^ b */
b ^= a; /* b = b ^ a = b ^ (a ^ b) = a
= b ^ b ^ a
= 0 ^ a
= a*/
a ^= b; /* a = a ^ b = (a ^ b) ^ a = b
= a ^ a ^ b
= 0 ^ b
= b*/
printf("Swap After:a = %d, b = %d.\n",a,b);
return 0;
}