正文

巧用异或交换整型变量的值 2007-06-26 09:40:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/lym51/27094.html

分享到:

巧用异或交换整型变量的值

来源:蚂蚁的 C/C++ 标准编程 作者:Antigloss

通常,如果要交换两个变量的值,可以这么做:

    tmp = a;
    a   = b;
    b   = tmp;

如上所示,这需要定义一个辅助变量 tmp。使用异或可以避免使用额外的辅助变量。例如:

    #define swap(a, b) (a) ^= (b), (b) ^= (a), (a) ^= (b)

    #include <stdio.h>

    int main(void)
    {
        int ival1 = 10, ival2 = 20;

        printf("%d %d\n", ival1, ival2);
        swap(ival1, ival2);
        printf("%d %d\n", ival1, ival2);
    }

不过,使用异或有个局限性,就是只能用于整数类型。

阅读(2198) | 评论(0)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

暂无评论
您需要登录后才能评论,请 登录 或者 注册