阅读后C++/STL 的隐藏特征和暗角上 年 月comp.lang.c++.moderated我感到非常惊讶的是, 以下的片段在2008年视觉工作室和G++4.

代码如下:

#include <stdio.h>
int main()
{
    int x = 10;
    while (x --> 0) // x goes to 0
    {
        printf("%d ", x);
    }
}

产出:

9 8 7 6 5 4 3 2 1 0

我想这是C,因为它在海合会也是工作。标准中的定义在哪里,它来自何处?


当前回答

while( x-- > 0 )

这是如何解析的。

其他回答

或者为了完全不同的东西...x幻灯片到0.

while (x --\
            \
             \
              \
               > 0)
     printf("%d ", x);

不那么数学,但是... 每幅画画上写着一千个字...

使用-->降幅曾经(而且在某些情况下仍然)比x86结构的递增速度快。-->建议x将会0,并吸引有数学背景的人。

事实上x正在检查该条件。它不是-->,它,它是(x--) > 0

注:价值x在检查该条件后更改,因为该条件在降序后发生。 类似的情况也可能发生, 例如 :

-->    x-->0
++>    x++>0
-->=   x-->=0
++>=   x++>=0
while( x-- > 0 )

这是如何解析的。

总之,我们现在有个"去"接线员"-->"很容易被记住是一个方向, 而“ 当 x 到零时” 是直截了当的意思 。

此外,它比"for (x = 10; x > 0; x --)"在一些平台上。