为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

C++
慕斯709654 2018-12-30 00:00:30
int a,c=5; a=2+(c+=c++,c+8,++c); 则 a=
查看完整描述

1 回答

?
手掌心

TA贡献1942条经验 获得超3个赞

逗号表达式从左往右依次计算,其结果是最右边的表达式的值。逗号表达式具有最低优先级。
这个问题重点在括号里面的计算过程:
首先计算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

查看完整回答
反对 回复 2019-01-15
  • 1 回答
  • 0 关注
  • 720 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信