c语言,++i求解。

......{inti=3;i=i+(++i);printf(“%d”,i);为什么是8?......{inti=3;i=i+(++i)+(++i);printf(“%d... ......{int i=3;i=i+(++i);printf(“%d”,i);为什么是8?
......{int i=3;i=i+(++i)+(++i);printf(“%d”,i);为什么是13?
.......{int i=3;i=i+(++i)+(++i)+(++i);printf(“%d”,i);为什么是19?
展开
 我来答
25127688
2012-03-03
知道答主
回答量:15
采纳率:0%
帮助的人:5.2万
展开全部
i=(++i)中先算括号里的值i为4,之后就是i=i+i,即i=4+4=8
追问
...大哥,这个都知道,就是不明白,为什么第二题就先算第二个括号,然后算括号外面的。
追答
运算顺序是自左向右,所以第二题和第三题是先算第一个括号后再从左至右的算加法在算后面括号的++i
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
mynamepass
2012-03-03 · 超过10用户采纳过TA的回答
知道答主
回答量:56
采纳率:0%
帮助的人:36万
展开全部
楼上正解
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lemonjoke33
2012-03-03 · 超过16用户采纳过TA的回答
知道答主
回答量:38
采纳率:0%
帮助的人:26.7万
展开全部
a.i=3,这个表达式应先算括号内的是字,即++i,它 是先执行i=i+1,再将i的值作为++i的值,因此 此时i=4了,即i=(++i)=4,因此结果i为8;
b.i+(++i)在上一题中已经的出为8,此时的i=4,当i=4的时候(++i)为5,因此最后值为4+4+5为13;
c.同理,当运算完第二个括号内的式子的时候,i已经=为5了,因此第三个括号内的式子结果为6了,因此最后职位19.
PS:++i和i++是不一样的,虽然两者都是做+1的运算,但是前者是先+1,运算玩以后i的值变为i+1了,而后者是先赋值给i,再做+1的运算,算完了以后i的值仍为i,不会有改变,虽然这两者的计算结果都是一样的,但i的值是不一样的,可能有点拗口,你自己再体会体会吧
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式