Por que trocar com o xor funciona bem em c ++, mas em java não? algum quebra-cabeça [duplicado]
Possível duplicado:
Por que esta declaração não está funcionando em java x ^ = y ^ = x ^ = y;
Código de amostra
int a=3;
int b=4;
a^=(b^=(a^=b));
Em c ++, ele troca variáveis, mas em java obtemos a = 0, b = 4, por que?