int a,c=5; a=2+(c+=c++,c+8,++c); 则 a=

求解释... 求解释 展开
 我来答
情已欠费akuin
2014-12-25 · TA获得超过553个赞
知道小有建树答主
回答量:899
采纳率:0%
帮助的人:530万
展开全部
a=2+(c+=c++,c+8,++c);->a=2+(c+=表达式)。
未定义行为:从表达式左边,右边开始计算
右边:
a=2+(c+=c++,++c)
c=6;
a=2+(c+=c)
c=12 a=14

左边,
c=7;
a=2+(c+=c)
c=14 a=16
追问
看不懂,答案是14,怎么会出现16
水上漂汤
推荐于2017-09-04 · TA获得超过1万个赞
知道大有可为答主
回答量:1830
采纳率:71%
帮助的人:1439万
展开全部
逗号表达式从左往右依次计算,其结果是最右边的表达式的值。逗号表达式具有最低优先级。
这个问题重点在括号里面的计算过程:
首先计算c += c++;
c++的值是5,c的值是6,接着c += 5, 所以c的值是11。整个表达式的值是c,即11
然后计算c + 8, 结果是19,表达式的值是19
最后计算++c,c的值由11变成12,整个表达式的值是c, 即12
所以a = 2 + (11, 19, 12)
a = 2 + 12 ,a的值是14
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式