[C++如何交换两个变量的值]

来源:互联网 发布:端口为什么是65535 编辑:程序博客网 时间:2024/05/09 07:37
以前就想整理一下关于交换两个变量的值的一些方法,无奈现在才开始整理。虽然方法不是很多,但是也有一些指导意义。
大体整理了3种基本常见的方法:
第一种是使用第三个变量进行交换;
第二种是直接进行交换;
第三种是用异或进行位运算进行交换。

相比较这三种方法,第三种方法效率较高,推荐使用。

//第一个方法是使用第三个变量作为箱子//进行交换#include <iostream>using namespace std;int main(){    int a, b;    a = 5;    b = 7;    cout << "交换之前的情况:" << endl;    cout << "a = " << a << endl;    cout << "b = " << b << endl;    int temp;//作为临时变量进行下面的交换    temp = a;//先把a的值暂时存放到temp中,因为a后面会被b覆盖    a = b;    b = temp;    cout << endl;    cout << "交换之后的情况:" << endl;    cout << "a = " << a << endl;    cout << "b = " << b << endl;    return 0;}

//第二种方法是不使用第三个变量//交换两个变量的值#include <iostream>using namespace std;int main(){    int a, b;    a = 5;    b = 7;    cout << "交换之前的情况:" << endl;    cout << "a = " << a << endl;    cout << "b = " << b << endl;    //进行交换    a = a + b;    b = a - b;    a = a - b;    cout << endl;    cout << "交换之后的情况:" << endl;    cout << "a = " << a << endl;    cout << "b = " << b << endl;    return 0;}

//第三种方法是利用异或位运算//交换两个变量的值#include <iostream>using namespace std;int main(){    int a, b;    a = 5;    b = 7;    cout << "交换之前的情况:" << endl;    cout << "a = " << a << endl;    cout << "b = " << b << endl;    //进行交换    //先转换成二进制    //a = 101 b = 111    // b = a ^ b 可以写成:    //   101    // ^ 111    // b=010    a = a ^ b;    b = a ^ b;    a = a ^ b;    cout << endl;    cout << "交换之后的情况:" << endl;    cout << "a = " << a << endl;    cout << "b = " << b << endl;    return 0;}


原创粉丝点击