面试题:不用第三变量交换ab值

来源:互联网 发布:淘宝上配送至什么意思 编辑:程序博客网 时间:2024/05/18 18:47

常规的就是加减法,这里给出另外一种方法,就是异或法!

#include <iostream>
using namespace std;

void exchange1(int &a, int &b);
void exchange2(int &a, int &b);

int main(int argc, _TCHAR* argv[])
{
 int a = 10, b = 5;
 exchange1(a, b);
 cout << a << "," << b << endl;
 exchange2(a, b);
 cout << a << "," << b << endl;
 return 0;
}

void exchange1(int &a, int &b) {
 a = a - b;
 b = a + b;
 a = b - a;
}

void exchange2(int &x, int &y)
{
    x = x ^ y;
    y = x ^ y;
    x = x ^ y;
}

 

这里给出的是c++的表达式子,用的是引用,c语言的直接用指针就是了

 

原创粉丝点击