#include <iostream>
using namespace std;
int main ()
{
int a,b;
a=3,b=4;
a+=b+=2;
cout <<"a="<<a<<endl<<"b="<<b<<endl<<(a+=b+=2);
}
这是vs c++ 2010编写的程序,程序运行结果是a=17,b=8,想请教一下各位大佬,a,b的值是如何具体计算出来的
你自己加一些输出语句来判断,就可以了。
a=3,b=4;
cout <<"a= "<<a<<" b= "<<b;
a+=b+=2;
cout <<"a= "<<a<<" b= "<<b;
本质上是由于cout是输出流,从右向左进行运算,
cout <<"a="<<a<<endl<<"b="<<b<<endl<<(a+=b+=2);
而本行代最后又有(a+=b+=2),从而使得(a+=b+=2)计算了两遍。故输出了如题叙述的那样的a,b的值