c++ - 关于 --> 在 C++ 中的混淆?

标签 c++ decrement

<分区>

我知道 --> 不是运算符。它实际上是两个独立的运算符-->。它与下面的操作相同。

while( (x--) > 0 )

现在我运行了两个程序,但它引起了我的一些困惑。

第一个程序:

int main(void)
{
    int x = 10;
    while(----x>0)
   {
     cout<<x<<endl;
   }
}

输出: 8 6 4 2

第二个程序:

int main(void)
{
    int x = 10;
    while(x---->0)
   {
     cout<<x<<endl;
   }
}

编译错误:

lvalue required as decrement operand

实际上这里发生了什么??为什么第一个程序运行成功而第二个程序运行失败??

最佳答案

--x的结果是一个左值,你可以再次对它应用--:--(--x)

x-- 的结果是一个右值,因为 -- 需要一个左值,你不能做 (x--)--.

关于c++ - 关于 --> 在 C++ 中的混淆?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34930721/

相关文章:

c++ - C++中的构造函数继承

c++ - 如何以及何时执行静态链接 (MinGW)?

javascript - 计数器停在 0 处

java - 在同一循环中递增和递减的有效方法

c++ - constexpr - "Evaluate value at compile time"到底是什么意思?

c++ - 将 OpenGL 模板功能移植到 DirectX 11

c++ - SDL : blitting on background instead of screen?

loops - LOLCODE 中的 NERFIN 循环操作有什么好处?

java - 显示倒金字塔

google-analytics - GA中的减量指标