我可以做第三个变量
c=a|b;
a=c&a;
b=c&a;
Run Code Online (Sandbox Code Playgroud)
但我需要在没有第三个变量的情况下这样做.我试过使用XOR它也没有帮助我.
XOR有一个属性,XORing东西两次总能带你回到你开始的地方.您可以使用此事实在三个分配中切换变量而不使用第三个变量.
int a = 54;
int b = 23;
a = a XOR b; // (a XOR b)
b = a XOR b; // (a XOR b) XOR b = a
a = a XOR b; // (a XOR b) XOR a = b
Run Code Online (Sandbox Code Playgroud)