假设int x=11;表达式(x++*1/3)的值为什么等于3?

如题,每个运算符的式子解释一遍就行了,谢谢

想搞清楚这道题,就需要理解运算符的优先级。

既然你这么急迫,我就不贴所有的优先级了,单就这个运算来说:

    x++的运算,++操作放在后面,所以优先级最低,在执行完整个运算后才会把x的值增加1

    所以x的值在这个表达式中就是11:11*1/3是按照普通的乘除,从左到右进行

    因为变量x是int类型,包括所有表达式中的数字也都是int类型,是不会有小数点的,都是直接取整,所以11/3=3.66666....也是直接取3

    最后表达式运算结果就是3,这之后才会对x的值进行+1

追问

++不是第2优先级吗?,*/在第3优先级?应该是++先啊

追答

你说的对,不过在这个表达式里,除了运算还有一个赋值的操作,这就是++i和i++的不同之处,如果是++x,那就会用12来计算了,但x++就会使用11来计算,之后才为x增加1

追问

谢谢,这一个问题把我另一个问题也解决了。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-12-16
x++是自增,但是是先返回x的值再自增,所以相当于11*1/3=3,这里因为是int类型所以向下取整了

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网