我们说--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; 展开
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; 展开
4个回答
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
那么什么是当前计算??
在你的题目 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
展开全部
j=i++*5+4*--i;
中先算i++*5结果等于5,i等于2,
再算4*--i结果等于4,i等于1。
所以,最后i=1,j=9。
中先算i++*5结果等于5,i等于2,
再算4*--i结果等于4,i等于1。
所以,最后i=1,j=9。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2019-09-11
展开全部
看+号位置,在前就先+后用,在后就先用后加,还有编译器,看运算符的结合方向,可以实际测试一下,才知道
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询