当我编译此代码时,它显示为左值的错误,作为增量操作数

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/

10-11 23:01
查看更多