交换两个变量而不用另外开辟空间。

来源:互联网 发布:喜剧电影 知乎 编辑:程序博客网 时间:2024/04/27 03:25
面试官问:“如何交换两个变量而不用另外开辟空间。”(前提是在嵌入式系统中资源很宝贵).
答是使用位操作如下:
void swap(int a,int b)

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

考官说如果a,b两个变量是占满32位,则位操作会出现溢出。

不知以下是不是正确方法。

void swap(int a,int b)

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

原创粉丝点击