C语言if后面的括号里的表达式是不是一定产生逻辑值?

如题所述

c语言中非0的都为真
表示判断条件成立
printf("putout:%d\n",a+b>c&&b==c);
//
4
==
5
为假
就是0
因为用的是&&必须两面都是真才为真
printf("putout:%d\n",a||b+c&&b-c);
//(a
||
(b+c))
&&
(b-c)
,真
||

&&

=

printf("putout:%d\n",!(a>b)&&!c||1);
//(!(a>b)
&&
!c)
||
1
,(假
&&
假)
||

=

printf("putout:%d\n",!(x=a)&&(y=b)&&0);
//
!(x=a)
&&
(y=b)
&&
0
(假
&&
真)
&&

=

printf("putout:%d\n",!(a+b)+c-1&&b+c/2);
//
!(a+b)
+
c
-
1
&&
b
+
c
/
2
,(假
+
c
-
1)
&&
6
=
温馨提示:答案为网友推荐,仅供参考