假设int a=1,b=2;则表达式(++a/b)*b--的值是多少?答案是2,但是我不明白~~~

 我来答
meteortent
推荐于2018-01-03 · TA获得超过518个赞
知道小有建树答主
回答量:870
采纳率:0%
帮助的人:732万
展开全部
优先级问题,真正的程序中一定要尽量避免这种可读性差且宜出错的代码
这个表达式分解如下
a=a+1; //a=2
a=a/b; //a=1
a=a*b; //a=2
b=b-1; //b=1 这一句是这个表达式结束后的事情了,所以表达式的值是2
waxm007
2011-10-17 · TA获得超过2078个赞
知道小有建树答主
回答量:345
采纳率:50%
帮助的人:273万
展开全部
(++a / b) * b--
此处 () 优先级最高,所以先计算(++a / b)
++a的值为2,b值为2,所以(++a / b) 的值为1
然后是计算1 * b--
b--是中的 -- 符号是后加减,就是说第一次运算不减
只有第二次运算该变量才执行减一操作
所以1 * b-- 等于1 * 2 等于 2
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
苍老师的大姨夫
2011-10-17 · TA获得超过313个赞
知道小有建树答主
回答量:93
采纳率:0%
帮助的人:145万
展开全部
运算符是有优先级的,本题中()的优先级最高,++,--次之,*,/最低。运行时,先运行()里面的内容++a/b,意思是(a+1)/b=1,b--的意思是先计算再自减,b--等于2,之后b=b-1,所以(++a/b)*b--的结果是2
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
黎明之鸟l
2018-01-03 · TA获得超过263个赞
知道小有建树答主
回答量:247
采纳率:67%
帮助的人:128万
展开全部
(++a/b)*b--;//小括号里面的优先级最高先执行++a/b,左++优先级比/高,所以先执行++,所以小括号的执行结果是((1+1)/2)=1;
//k=1*B--;//先执行乘法赋值给k再右减,所以如果你的表达式左值应该是2(即k值)
k=(++a/b)*b--;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
jyw金ly
2011-10-17 · TA获得超过100个赞
知道答主
回答量:181
采纳率:0%
帮助的人:122万
展开全部
回答:++a/b a要先自增后在除以b ;(1)*b-- 是b要先乘以1后在自减
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(6)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式