1. 程式人生 > >不用第三個變數,直接交換兩個變數的值

不用第三個變數,直接交換兩個變數的值

#include <iostream>

using namespace std;

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

void swap_b(int &a, int &b) {
    a = a ^ b;
    b = a ^ b;
    a = a ^ b;
}

/*
 * 在例如嵌入式開發這種空間有限的情況下,還是有用的
 * 亦或操作肯定比加法運算更簡單,效率更高
 */
int main() {
    int a = 1;
    int b = 2;
    swap_a(a, b);

    cout<<a<<"--"<<b<<endl;

    swap_b(a, b);

    cout<<a<<"--"<<b<<endl;
}