假设int a=1,b=2;则表达式(++a/b)*b--的值是多少?答案是2,但是我不明白~~~
展开全部
(++a / b) * b--
此处 () 优先级最高,所以先计算(++a / b)
++a的值为2,b值为2,所以(++a / b) 的值为1
然后是计算1 * b--
b--是中的 -- 符号是后加减,就是说第一次运算不减
只有第二次运算该变量才执行减一操作
所以1 * b-- 等于1 * 2 等于 2
此处 () 优先级最高,所以先计算(++a / b)
++a的值为2,b值为2,所以(++a / b) 的值为1
然后是计算1 * b--
b--是中的 -- 符号是后加减,就是说第一次运算不减
只有第二次运算该变量才执行减一操作
所以1 * b-- 等于1 * 2 等于 2
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
运算符是有优先级的,本题中()的优先级最高,++,--次之,*,/最低。运行时,先运行()里面的内容++a/b,意思是(a+1)/b=1,b--的意思是先计算再自减,b--等于2,之后b=b-1,所以(++a/b)*b--的结果是2
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
(++a/b)*b--;//小括号里面的优先级最高先执行++a/b,左++优先级比/高,所以先执行++,所以小括号的执行结果是((1+1)/2)=1;
//k=1*B--;//先执行乘法赋值给k再右减,所以如果你的表达式左值应该是2(即k值)
k=(++a/b)*b--;
//k=1*B--;//先执行乘法赋值给k再右减,所以如果你的表达式左值应该是2(即k值)
k=(++a/b)*b--;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
回答:++a/b a要先自增后在除以b ;(1)*b-- 是b要先乘以1后在自减
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询