我们说--i在用于计算时 时先本身减1再计算 i++是先计算了 再本身+1 那么 看一下这题

设i=1j=i++*5;j=5,i=2过j=4*--i;i=0,j=0;过j=i++*5+4*--i;=5+0=5i=1;j=5;不过?实际却是i=1,j=9;... 设i=1
j=i++*5;
j=5,i=2

j=4*--i;
i=0,j=0;

j=i++*5+4*--i;
=5+0
=5
i=1;j=5;
不过?
实际却是i=1,j=9;
展开
 我来答
匿名用户
2019-09-11
展开全部
你也说了++后置是执行完当前计算后,变量自增1
那么什么是当前计算??
在你的题目 i++ * 5 + 4 * --i,这个操作中,i++ * 5是一个计算,4 * --i 也是一个独立的计算,中间的加法又是一个独立的计算
此时在计算i++ * 5 时候,i的值是初始值1,那么i++ * 5 的结果就是5,此时当前计算已经结束,i自增1,此时i=2
然后由于乘法计算优先级>加法,开始计算 4 * --i ,此时的i=2,由于--前置,先自减1,i变成了1,那么4 * --i 就等于4*1结果是4
最后进行加法计算,5+4 =9
所以结果就是j=9,i=1
整个运算过程的顺序依次就是: i*5, i++, --i, 4*i, 5+4
microroom
科技发烧友

2019-09-11 · 智能家居/数码/手机/智能家电产品都懂点
知道大有可为答主
回答量:7118
采纳率:83%
帮助的人:1621万
展开全部
j=i++*5+4*--i;
中先算i++*5结果等于5,i等于2,
再算4*--i结果等于4,i等于1。
所以,最后i=1,j=9。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2019-09-11
展开全部
看+号位置,在前就先+后用,在后就先用后加,还有编译器,看运算符的结合方向,可以实际测试一下,才知道
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
T恤家族
2019-09-11 · TA获得超过152个赞
知道答主
回答量:51
采纳率:66%
帮助的人:5.1万
展开全部

最终结果i=1,j=9。具体计算情况如下图:

补充:最后一步的--i前面 还有一步i++。

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式