不需要辅助内存交换两变量

刚刚在林乐博客看到的,拿过来备用

用到的异或的方法:

#include "stdio.h"
int main()
{
    int a,b;
    while(scanf("%d %d",&a,&b)!=EOF)
    {
        a^=b^=a=a^b;
        printf("%d %dn",a,b);
    }
    return 0;
}

其实a^=b^=a=a^b;这句就相当于是

a=a^b;
b=a^b;
a=a^b;

写法.

除此之外还有加减法,代码:

a = a+b;
b = a-b;
a = a-b;

也可以方便的实现交换两数.

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注