(++a)+=(a++)怎么计算啊?

inta=4;cout<<(++a)+=(a++)<<endl;//结果为10cout<<a<<endl;//结果为11帮忙分析下啊,谢谢了。... int a=4;
cout<<(++a)+=(a++)<<endl; //结果为10
cout<<a<<endl; //结果为11

帮忙分析下啊,谢谢了。
展开
 我来答
porker2008
推荐于2017-09-01 · TA获得超过1.4万个赞
知道大有可为答主
回答量:7066
采纳率:62%
帮助的人:1.1亿
展开全部
原来的代码等效于下面的代码...

int a=4; //a == 4
++a; //a == 5
a+=a; //a == 10
cout << a << endl;
a++; //a == 11
cout << a << endl;

所以输出10和11.
妙霜存0
2022-04-21
知道答主
回答量:7
采纳率:0%
帮助的人:4274
展开全部
括号优先级最高,先算从左向右的算括号里的内容。
++a;//a=5
a++;//后缀表达式生成临时变量,取a当前值5,++操作在同一行表达式里最后执行
//再算+=操作,+=操作从右向左
a+=5//5为a++表达式临时变量返回值,a为++a表达式的返回值,整条表达式返回值为a的值即10,这也是第一个cout输出值
//最后执行a++后缀表达式的++操作,a为11
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
slugzoe
2009-07-09
知道答主
回答量:2
采纳率:0%
帮助的人:3399
展开全部
运算顺序为++a,得结果5
a+=a;
得结果10
a++;
得结果11

一个比较好懂的区分++a和a++的办法就是++在前就先++了再得结果,比如这里,就先按++了以后的算,如果a++就先算a,完了再++
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友c8138e9f7
2009-07-09 · TA获得超过692个赞
知道小有建树答主
回答量:182
采纳率:0%
帮助的人:275万
展开全部
lz你好,为什么结果是10和11楼上的几位都说的很清楚了。
我想说下,cout<<(++a)+=(a++)<<endl; 这个语句本身就通不过编译的。
因为用cout输出赋值语句的时候,一定要用括号括起来的!!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
sjy88813
2009-07-09 · TA获得超过320个赞
知道答主
回答量:55
采纳率:0%
帮助的人:35.5万
展开全部
第一个cout中,运行了:a=a+1;
a=a+a;
第二个cout中,运行了:a=a+1;
a=a+a+1;
++a:在使用a之前给a加1;
a++:再a使用(参与运算)后再加1;
cout<<((++a)+=(a++))<<endl;
cout<<a<<endl;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(6)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式