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

Confusion regarding --> in c++?

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

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--)--