以下是c中的代码行。
i++=i++;
输出:需要错误左值。
那么这个错误说明了什么?
的结果i++
不是左值,标准要求赋值运算符的左操作数是左值。
即使允许,当您尝试在两个序列点之间修改同一个对象两次时,您的程序也会调用未定义的行为。
它表示i++
不可分配。这就像尝试分配给1
(在存储值i++
时会产生)。i
1
当然,这没有任何意义。您可以将其与尝试更改颜色“红色”进行比较,当您实际上想先将纸张涂成红色然后涂成蓝色时。
这就是说需要左值。你正在做一个左=右的作业。i++ 不能是左,因为它是右。去掉简洁,你的代码行就变成了
i + 1 = i + 1,这是一个方程而不是一个赋值。
最重要的是,您实际上想做什么?