交换两个变量而不使用第三个变量作为中间位置

时间:2012-03-06 09:11:42

标签: c++

编写一个程序来交换两个变量而不使用第三个变量作为中介 位置。

a=2; b=3;
a=a*b; // 6
b=a/b; // 2
a=a/b; // 3
a=3 and b=2

????是真的,,,我有错误

2 个答案:

答案 0 :(得分:1)

更好地使用没有"奇点的可逆运算符"。例如+-(假设整数包装都没问题。

当然,获胜者是XOR。

a ^= b;
b ^= a;
a ^= b;

答案 1 :(得分:0)

如果b或a为零,会发生什么?如果两者都不为零,并且您没有溢出该类型,则代码将起作用。