c语言取余运算与四则运算的优先级是怎么的?

a%3*(int)(x+y)%2/4 (a初值是10)这里的取余与四则运算是同级别的吗?如果是的话,运算就是从左往右依次运算是否?非高手勿扰!

优先级:括号优先级最高,结合方式从左往右
% * / 是同一优先级,但要高于+ - ,结合方式从左往右
所以说取余与四则运算是同级别是不对的
现在分析你的算式:先不论你的x,y取值 输出结果为0
首先执行() x+y的值被强制转换为整型
其次从左往右执行 a=10 a%3=1 (int)(x+y)%2要么为0 要么为1
如果为0 那么0/4=0
如果为1 1/4等于几呢 1 4都为整数那结果肯定是0
如果说 float m;m = 1 / 4; 那它的结果还是0 不信你可以用编译器调试
那怎么得到0.25呢 把上一句改为 m=1/4.0 结果就为0.25了
希望对你有帮助
温馨提示:答案为网友推荐,仅供参考
相似回答