我知道-->
不是运营商。它实际上是两个独立的运算符--
和>
。它与下面的操作相同。
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;
}
}
我收到了编译错误:
左值作为递减操作数
其实这里发生了什么?为什么第一个程序运行成功而不是第二个程序?
答案 0 :(得分:15)
--x
的结果是左值,您可以再次向--
申请--(--x)
。
x--
的结果是左值,因为--
需要左值,您不能(x--)--
。