最简单的交换两个数;
用到了异或运算符;
1 void A(int &a, int &b){ 2 a = a^b; 3 b = a^b; 4 a = a^b; 5 }
第二行 a=a^b;
第三行 b=a^b相当于b=a^b^b相当于b=a,将第二行算式代入;
第四行 a=a^b相当于a=a^b^a相当于a=b,将第二行第三行代入;
这样不用借助第三个辅助变量就能交换两个数的值;
用到的是:一个数与自身按位异或运算等于0;一个数与0按位异或运算是本身;