c语言 int a=4 b=5 c=0,d; d=!a&&!b||!c;

d=?
分析一下,关系运算咋么处理

C语言中,凡不为0的,按“真”处理,等于0按“假”处理。结果为“真”用1表示,为“假”用0表示。
先作&&(与)运算,再作||(或)运算。
所以d=1。

另外:C语言的逻辑运算,如果结果明确,后继的运算将不再进行!
如本例,因为a=4,所以!a=0,不管b的值是多少,!a&&!b肯定是0,所以!b就不再计算了。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-05-27
这是逻辑运算符 及其 优先次序的题目:
首先要知道 逻辑运算符中 或与非 三者的运算符优先级:
!->&&->|| 非与或 依次递减
由abc三者的数值可知!a = 0 ; !b = 0 ; !c = 1; 求&& 为 0 ;求或 为1 ;
结果就是1 了。
第2个回答  2011-05-27
这个得看运算符号的优先级
!的优先级高于&&和||
而&&的优先级高于||
所以先算!a=0,!b=0,!c=1
所以0&&0=0
0||1=1;
d=1
详情见http://baike.baidu.com/view/1501335.htm
第3个回答  2011-05-27
先计算!
得出
!a = 0;
b! = 0
!c = 1;
0&&0||1
然后从左至右。。
结果为1
相似回答