Rag*_*gav 0 c increment lvalue decrement operand
为什么lvalue需要作为增量操作数Error a = b +(++ c ++); ?
只想同时将'b +(c + 1)'分配给'a'并将'C'增加2.
我是一个初学者只是想要澄清什么是"LVALUE ERROR"实际上是什么?
main()
{
int a=1,b=5,c=3;
a=b+(++c++);
printf("a=%d b= %d c= %d \n",a,b,c);
}
Run Code Online (Sandbox Code Playgroud)
后缀增量绑定比前缀增量更紧,所以你想要的是:
a = b + (++c)++;
Run Code Online (Sandbox Code Playgroud)
但这不是合法的C,因为前缀增量的结果(如示例中的后缀增量的结果)不是左值.这意味着它只是一个价值; 它不再引用像'c'这样的特定对象,所以试图改变它是没有意义的.它没有可见的效果,因为没有对象会被更新.
就我个人而言,我认为在两个陈述中这样做在任何情况下都更清楚.
a = b + c + 1;
c += 2;
Run Code Online (Sandbox Code Playgroud)