C语言问题 为什么a=(b=3,b+5,b++);的结果是3 而a=(b=2,++b,b+5);的结果是8?

a=(b=3,b+5,b++);的结果是3而a=(b=2,++b,b+5);的结果是8?请说明下具体过程谢谢... a=(b=3,b+5,b++);的结果是3 而a=(b=2,++b,b+5);的结果是8?
请说明下具体过程 谢谢
展开
 我来答
x_iam
2014-03-29 · TA获得超过180个赞
知道小有建树答主
回答量:252
采纳率:100%
帮助的人:209万
展开全部
逗号表达式中最后一个子表达式的值作为整个表达式的值被返回。
所以第一个表达式可以等价为下面的表达式序列:
b=3;
b+5;
a=(b++);
执行到第三个子表达式的时候,整个表达式的执行过程是:a=b;b=b+1;所以很显然,a=3。

对于第二个表达式,可以同样的分析。
等价的表达式序列为:
b=2;
b=b+1;
a=(b+5);
执行了前两个表达式b的值为3,那么执行第三个表达式的时候就会得到a=8。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式