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

Confusion regarding --> in c++?

本文关键字:c++ gt 关于      更新时间:2023-10-16

我知道-->不是运算符。它实际上是两个独立的运算符 --> .它和下面的操作一样。

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;
   }
}

我收到编译错误:

作为递减操作数所需的右值

实际上这里发生了什么?? 为什么第一个程序运行成功,第二个程序没有?

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

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