当我编译此代码时,它显示为左值的错误,作为增量操作数
int main(void)
{
int x,y,z;
x=8++;
y=++x++;
z=(x+y)--;
printf("x=%d,y=%d,z=%d",x,y,z;
return 0;
}
最佳答案
当您编写something++
或++something
时,它大致等同于
something = something + 1
(
something++
和++something
之间的区别在于将结果分配给其他对象时得到的结果)。因此,必须为
++
的操作数指定内容。8++
等同于8 = 8 + 1
,但是您不能分配一个数字。++x++
等同于(x = x + 1) = (x = x + 1) + 1
之类的东西,我什至无法理解其意图。(x+y)--
等效于(x + y) = (x + y) - 1
。您不能分配给加法表达式(您要设置哪个变量)?实际要更新变量时,仅应使用
++
或--
。它不是+ 1
或- 1
的一般替代品。因此,您的程序应为:x = 8 + 1;
y = 1 + x + 1;
z = (x + y) - 1;
这将打印
x = 9, y = 11, z = 19
关于c - 在表达式中执行增量的问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/56089960/