c语言中a=3,b=2,c=1。a<=b+c的值为什么是0?

Python019

c语言中a=3,b=2,c=1。a<=b+c的值为什么是0?,第1张

结论:c语言中a=3,b=2,c=1。a<=b+c的值是1

分析:根据C语言的运算符优先级,加号(+)优先级高于小于等于(<=),所以

3<=2+1,即3<=3,结果为“真”,所以值是1。

代码验证如图示:

||a || b + c &&b - c

= a || ((b + c) &&(b - c))

= 3 || ((4 + 5) &&(4 - 5))

= 3 || 1

= 1

按照优先级,先加减运算,后逻辑运算

而逻辑运算的几个操作数都是非0的,可以认为是1

因此最终结果为逻辑1

扩展资料

C语言的运算符主要用于构成表达式,同一个符号在不同的表达式中,其作用并不一致。下面按计算的优先顺序,分别说明不同作用的表达式。需要特别指出,在C语言标准中,并没有结合性的说法。

相同优先级运算符,从左至右依次运算。注意后缀运算优先级高于前缀。因此++i++应解释为++(i++)。

而与或非的运算优先级都不一样,因此a &&b || b &&c解释为(a &&b) || (b &&c)

合理使用优先级可以极大简化表达式。

结果是4

程序有一点小问题

要先定义a

需要解释的是中间的那一部分。

先判断a<1是否成立,如果不成立则1就作为整个条件表达式的值。

然后执行a=a+1

故结果为a=3+1=4