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

这答案我有点看不懂!

http://img1.sycdn.imooc.com//57beee3e000143c507130289.jpg

第一和第二个循环中i++都在sum+=i*flag前面,更上面不是说了i=1了吗,那i++岂不是从i=2开始???

正在回答

2 回答

你可以理解成由左至右进行计算的方式,i++就是先进行i的计算,已经带入了计算式,然后才进行的+1,开始实行i+1的计算,就比如说i=2;printf(“%d\n”,i++);printf(“%d\n”,i);此时输出的就是先进行i的计算,直接输出i的值为2,然后i进行了下一步+1,则此时i等于2+1=3了就,所以输出的是

2

3

0 回复 有任何疑惑可以回复我~
#1

_死水_ 提问者

非常感谢!
2016-12-12 回复 有任何疑惑可以回复我~

i++  :先在i所在的表达式中使用i的当前值,后让i加1

++i  :让i先加1,然后在i所在的表达式中使用i的新值

在第一个和第二个循环中,第一次循环时i=1,执行完程序i变为2

0 回复 有任何疑惑可以回复我~
#1

_死水_ 提问者

可是i++;这都有个分号了。这一句难道还要分两部份执行,先取i=1,然后执行后面的两句,然后再回来++?
2016-08-26 回复 有任何疑惑可以回复我~
#2

守望晨曦 回复 _死水_ 提问者

对的,就是这么理解。整个一遍运算中,i用完后再对他加1。
2016-09-01 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

这答案我有点看不懂!

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信