面试: 不使用中间变量, 怎样交换a和b?
加减法:(可能出现益出)
a = a + b;
b = a - b;
a = a - b;
第二步:
b = a - b = (a + b) - b = a;
第三步:
a = a - b = (a + b) - a = b;
异或法:
#include <stdio.h>
int main()
{
int a=3,b=5;
printf("a=%d,b=%d/n",a,b);
a=a^b;
b=a^b;
a=a^b;
printf("a=%d,b=%d/n",a,b);
getchar();
return 0;
}