落絮飞雁

顺流而下,把梦做完

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

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

用到的异或的方法:

#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;

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


原文标题:不需要辅助内存交换两变量|落絮飞雁的个人网站
原文链接:https://www.luoxufeiyan.com/2014/03/24/%e4%b8%8d%e9%9c%80%e8%a6%81%e8%be%85%e5%8a%a9%e5%86%85%e5%ad%98%e4%ba%a4%e6%8d%a2%e4%b8%a4%e5%8f%98%e9%87%8f/
授权协议:创作共用 署名-非商业性使用 2.5 中国大陆
除注明外,本站文章均为原创;转载时请保留上述链接。