(a++) += a的问题

来源:百度知道 编辑:UC知道 时间:2024/06/01 00:53:21
例:
#include <iostream>
using namespace std;
int mian()
{
int a=4;
(a++)+=a;
cout<<a<<endl;
}
中的(a++)+=a;中错了,左侧不是一个有效变量,不能赋值,为什么?谢谢。

其实是这样的:
为什么编译的时候出错呢?因为一个常数不能被赋值,
int a=4;而当编译器执行(a++)+=a语句时,先执行a++ 因为a=4,所以a++的值就是4了,即是a++=4,所以把(a++)+a赋给(a++)当然是错的了,
还有你的int main 写错了不是mian。
(a++)+=a; //a++=4是一个常数 不能做为一个变量被赋值 。

VC里的报错信息:
error C2106: '+=' : left operand must be l-value

(a++)+=a就是(a++)=(a++)+a a++就是a=a+1.是不能被赋值的。

=左侧直接相关的变量是不能进行运算的。