C语言表达式计算步骤
发布网友
发布时间:2022-05-09 08:45
我来回答
共3个回答
热心网友
时间:2023-07-25 22:54
强制转换的优先级高于运算符
剩下的就是括号和四则运算次序了
a+(int)(b/3*(int)
(a+c)/2)%4
1、(int)
(a+c)
强制转换
2、b/3*(int)
(a+c)/2
自左向右依次进行
3、(int)(b/3*(int)
(a+c)/2
强制转换
4、(int)(b/3*(int)
(a+c)/2)%4
数据取余
5、a+(int)(b/3*(int)
(a+c)/2)%4
热心网友
时间:2023-07-25 22:54
问题一:对于int型/的作用其实是求商的,明白否(强制转换)。
问题二:讲方法。。。对于c语言中的逻辑运算,其 结合性是从左往右的,也就是从左往右运算。在运算的过程中,只要计算到某一步时能够确定整个表达式的值时,后面的式子就不会参与运算了,也就是保持原来的值不变。像你的问题中的第一个例子,a=0,0&&任何数还是0,所以后面的两个式子就不会参与运算了。不懂再问。。。。
热心网友
时间:2023-07-25 22:55
在这个表达式中有括号、强制类型转换、算术运算运算符。
括号优先级最大,且由左到右顺序,则先算(int)再算(b/3*(int)(a+c)/2),在运算过程中则先算(int)后算(a+c).
这样括号就算完了,然后算强制类型转换,把b/3*(int)(a+c)/2),转换成int类型,在其中也把(a+c)转换成int类型。
最后算算术运算符,先乘除求余,从左到右。后加减也是从左到右。即可得到结果。