繁体   English   中英

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

[英]assigning a variable to pre-increment variable and post increment variable?

以下两个作业有什么区别?

#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的递增前。 该值是一个rvalue ,即一个未命名的临时值。 C ++中不允许修改右值。

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

后增量返回无法分配的旧值i - rvalue

有关在C ++中实现operator++ ,请参见此问题

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM