例如 a=10,b=20,要求交换他们两个的值,并且不能使用第三变量
第一种方法:加减法
#include <stdio.h>
int main()
{
int a=10;
int b=20;
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);
system("pause");
return 0;
}
这样就完成了a和b的交换,但是我们还有更好的方法,就是
第二种方法:异或法
#include <stdio.h>
#include <stdlib.h>
int main()
{
int a=10;
int b=20;
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);
system("pause");
return 0;
将a和b异或的值暂时存放在a中,让b异或上a和b异或的值,就得到了原先的a,此时b=原先的a,我们再让a异或a和b的异或就可以得到b,谢谢观看。