左值和右值赋值错误

AyB*_*Bay 2 c++ assignment-operator post-increment

int x = 3;
int y = 5;
x++ = y;
cout << x << endl;
Run Code Online (Sandbox Code Playgroud)

为什么上面的代码给我一个错误,我得到的具体错误是

左值作为赋值的左操作数.

我正在尝试回顾我的C和C++.从我的理解,上面的代码理论上应该复制y到into 的值x,然后最后增加x复制完成后的值.所以它会打印出"6".

AJ.*_*AJ. 6

x++ ==> x=x+1

x++ = y ==> (x+1)=y
Run Code Online (Sandbox Code Playgroud)

现在x+1=y将抛出lvalue required哪个意味着左手边=应该是变量而不是常数

  • @AyBayBay因为当你执行`++ x`时,首先`x`递增..然后它得到一些值..然后,你用'y`的值覆盖这个值. (2认同)
  • 这个答案在我看来是错的.(8支票!). (2认同)
  • @DeadMG我认为这个答案暗示它相当于`x = x + 1 = y`,所以相关性等于'x =(x + 1 = y)`.当然,'x + 1`给出一个rvalue的事实是同样的问题,但解释并不是真的. (2认同)