-1

以下是c中的代码行。

     i++=i++;

输出:需要错误左值。
那么这个错误说明了什么?

4

3 回答 3

1

的结果i++不是左值,标准要求赋值运算符的左操作数是左值。

即使允许,当您尝试在两个序列点之间修改同一个对象两次时,您的程序也会调用未定义的行为。

于 2012-08-05T11:48:41.970 回答
0

它表示i++不可分配。这就像尝试分配给1(在存储值i++时会产生)。i1

当然,这没有任何意义。您可以将其与尝试更改颜色“红色”进行比较,当您实际上想先将纸张涂成红色然后涂成蓝色时。

于 2012-08-05T11:49:56.237 回答
0

这就是说需要左值。你正在做一个左=右的作业。i++ 不能是左,因为它是右。去掉简洁,你的代码行就变成了

i + 1 = i + 1,这是一个方程而不是一个赋值。

最重要的是,您实际上想做什么?

于 2012-08-05T11:53:03.510 回答