我知道为什么在大多数情况下使用描述的方法没有意义:代码变得混乱且难以阅读,并且通常比使用第三个“ temp”变量的解决方案执行得更慢。但是,我发现的任何问题都没有讨论实践中二变量方法的任何好处。它们是否具有赎回的质量或好处(历史的或现代的),还是仅作为晦涩的编程琐事有用?
在这一点上,这只是一个巧妙的把戏。如果您的编译器将识别 正常的 交换并适当地对其进行了优化,则可以进行速度明智的选择(但不能保证它会识别奇怪的交换并对其进行适当的xor优化)。
xor