i和j的值交换的方法

    方法一:

    int i = 3, j = 5;
    int c = i;
    i = j;
    j = c;

    方法二:

    int i = 3, j = 5;
    int n = i + j;
    i = n - j;
    j = n -i;

    方法三:

    int i = 3, j = 5;
    i = i + j;
    j = i - j;
    i = i - j;

    方法四:

    int i = 3, j = 5;
    i = j - i;
    j = j - i;
    i = j + i;

    方法五:异或运算xor(^)

    int i = 3, j = 5;
    i^ = j;     // i = i ^ j
    j^ = i;     // j = i ^ j
    i^ = j;     // i = j ^ i

 异或运算解析

            0011(i)
    xor     0101(j)
    ----------------------
            0110(i)

            0110(i)
    xor     0101(j)
    ----------------------    
            0011(j)

            0011(j)
    xor     0110(i)
    ----------------------
            0101(i)

窃以为第五种方法效率最高:位运算,cpu直接进行运算,效率高。

原文地址:https://www.cnblogs.com/chuijingjing/p/9405609.html