将变量分配给增量前变量和增量后变量

assigning a variable to pre-increment variable and post increment variable?

本文关键字:变量 分配      更新时间:2023-10-16

以下两个赋值有什么区别?

#include<iostream>
using namespace std;
int main(){
    int a=10,i=0;
    ++i = a //COMPILES WITHOUT ERROR
    i++ = a //GIVES AN ERROR LVALUE NEEDED
}

为什么第二个作业会出错?

++i在递增后返回i的新值。该值是左值,在本例中称为i。当然允许修改i

i++在递增之前返回i的旧值。该值是右值,即未命名的临时值。在C++中不允许修改右值。

预增量操作返回其已增加1的参数(i)。返回的东西是一个变量,你可以分配给它。

后增量返回i的旧值,这是一个右值,不能分配给.

有关operator++在C++中的实现,请参阅此问题。