利用逆运算的swap

#include <stdio.h>
#include <iostream>
using namespace std;
void swap1(int &a,int &b)
{
    a=a+b;
    b=a-b;
    a=a-b;
}
void swap2(int &a,int &b)
{
    a=a^b;
    b=a^b;
    a=a^b;
}
int main()
{
    int a=10;
    int b=5;
    cout<<"before swap is a:"<<a<<" b:"<<b<<endl;
    swap1(a,b);
    cout<<"after swap1 is a:"<<a<<" b:"<<b<<endl;
    swap2(a,b);
    cout<<"after swap2 is a:"<<a<<" b:"<<b<<endl;
    return 0;
}

 

posted on 2013-02-26 20:28  sherkey  阅读(103)  评论(0)    收藏  举报

导航