b=a++,b++,++b这个怎么看

刚接触C语言没看懂这题inta=2,b=5;b=a++,b++,++b;printf("%d",a+b);求输出结果... 刚接触C语言没看懂这题
int a=2,b=5;
b=a++,b++,++b;
printf("%d",a+b);
求输出结果
展开
 我来答
百度网友3028fd6b8
推荐于2018-04-12 · TA获得超过686个赞
知道小有建树答主
回答量:226
采纳率:0%
帮助的人:0
展开全部
结果是7,这是我在编译器上验证的结果,你也可以试一下。

是这样运算的:
‘,’是逗号运算符,运算结果取最后一个表达式的值,也就是取最后++b得出的值。但是逗号运算符需要从左向右依次一个表达式一个表达式的执行,具体执行步骤如下:
1、执行b=a++,先把a的赋值给b,得到b=2,a再自加1,得到a=3.
2、执行b++,b被自加1,所以b的结果是2+1=3
3、执行++b,b被自加1,所以b的结果是3+1 = 4.
4、执行printf,结果是a+b = 3 + 4 = 7.
百度网友000938229
2010-01-23 · TA获得超过2476个赞
知道小有建树答主
回答量:4411
采纳率:0%
帮助的人:869万
展开全部
首先你要明白a++和++a的区别:a++为执行这句之后a的值加一,++a为a的值加一再执行这句话。
其次,逗号表达式是先执行逗号之前,再执行逗号之后,赋值运算符优先级高于逗号表达式
因此:
int a=2,b=5;
b=a++,b++,++b;
//上面这句的执行过程是,b=a++:先执行a赋值给b,b=2,然后a加一等于3;b++:执行后b=3,++b:执行后b=4
printf("%d",a+b);输出a+b=3+4=7
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2018-04-12
展开全部
int a=2,b=5;
b=a++,b++,++b;
#b=a++, b=a=2, a=a+1=3
#b++, b=b+1=3
#++b, b=b+1=4
printf("%d",a+b);

#不论++a或a++,对于a来说都是a=a+1
#对于b = a++, 先把a值赋给b,再计算a=a+1
#对于b = ++a, 先计算a=a+1,再把a值赋给b
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
cdyzxy
2018-04-12 · TA获得超过2.1万个赞
知道大有可为答主
回答量:1.4万
采纳率:85%
帮助的人:3812万
展开全部
逗号表达式:
顺序计算b=a++;[b=2,a=2+1=3] b++;[b=2+1=3] ++b;[b=3+1=4]
[a+b=3+4=7]
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lizard1861
2010-01-23 · TA获得超过800个赞
知道小有建树答主
回答量:543
采纳率:0%
帮助的人:686万
展开全部
b=a++,(b=2,a=3),b++,(b=3),++b,(b=4)
a+b=7.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式