>“在C ++中的运算符?

在阅读comp.lang.c++.moderated的C ++ / STL的隐藏特性和黑暗角色之后,我完全惊讶以下代码片段在Visual Studio 2008和G ++ 4.4中编译和工作。

代码如下:

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

我认为这是C,因为它在GCC中也有效。 标准在哪里定义,它来自哪里?


-->不是操作员。 它实际上是两个独立的操作符, -->

条件的代码递减x ,而返回x的原始(未递减)值,然后比较了原始值0使用>运算符。

为了更好地理解,该陈述可以写成如下:

while( (x--) > 0 )

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

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

不是那么数学,但是......每张照片都能描绘出千言万语。 ...


这是一个非常复杂的操作符,因此即使ISO / IEC JTC1(联合技术委员会1)也将其描述放在C ++标准的两个不同部分。

除了开玩笑,他们是两个不同的操作符: -->分别在C ++ 03标准的§5.2.6/ 2和§5.9中描述。

链接地址: http://www.djcxy.com/p/19.html

上一篇: >" operator in C++?

下一篇: How do I redirect to another webpage?