Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我想知道有没有其他方法可以在一行中交换 2 个数字,当然没有第三个变量。
我知道这样做的一种方法:
b=a+b-(a=b)
或者
a=a+b-(b=a)
两者都是相同的(大约)。如果你知道然后请帮助我。
您可能正在寻找的经常被引用的经典答案是:
a^=b^=a^=b;
但是,它在技术上是错误的,因为它在一个序列点之前不止一次地改变了同一个变量。
在 C 中使用位旋转。以下交换两个变量:
if (a != b) { a ^= b ^= a ^= b; }