【发布时间】:2011-08-05 01:36:41
【问题描述】:
a=b+(b=a)*0;
这句话可以交换a和b的值。
我已经用 C# 试过了,它可以工作。
但我只是不知道它是如何工作的。
例如
a = 1, b = 2
我列出了它的步骤如下:
b = a -> a = 1, b = 1
b * 0 -> a = 1, b = 1
b + 0 -> a = 1, b = 1
a = b -> a = 1, b = 1 ?
但是 b 的值可能是错误的。
有人可以帮我吗?这让我很困惑。
【问题讨论】:
-
有趣!直到! :D 投赞成票!从来不知道这个技巧,但如果我在生产中看到它,我会让那个编码器在 200x 386-16Mhz 机器上安装 Windows ME...直到他求饶:)
-
@cindy 我选择这个问题来发布我的投诉。这个网站上的每个人都在抱怨,撕毁,并对任何发布的内容投反对票。请参阅下面的答案和 cmets。在你的情况下,我首先看到了混乱。直到,我看到了作业。我的意思是,在行尾的快速评论将有助于“交换 A 和 B”。无论如何,这个网站让我很生气。我们来到这里,提出问题并获得帮助。你只是问,这是如何工作的,而不是消极的。我是否发表了负面评论,是的,我猜是的。