L值必需错误

时间:2012-08-05 11:45:26

标签: c

以下是c。

中的代码行
     i++=i++;

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

3 个答案:

答案 0 :(得分:1)

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

即使允许你的程序调用未定义的行为,因为你试图在两个序列点之间修改同一个对象两次。

答案 1 :(得分:0)

表示i++不可分配。这就像尝试分配给1(当i++存储值i1会产生的{{1}}。

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

答案 2 :(得分:0)

这是说需要左值。你正在做一项左派=右派。 i ++不能是左派,因为它是正确的。 删除简洁性,你的代码行变为

i + 1 = i + 1,这是一个不是赋值的等式。

除此之外你还想做什么?