关于C语言逻辑表达式,!( X=a)&&(y=b)II0

如题所述

!( X=a)&&(y=b)II0 1.#include "stdio.h"
#include "math.h"
void main()
{
int X=0,a=1,b=1,y=1;
printf("%d",!(X=a)&&(y=b)||0);
}这是一个双目运算符:判断到||符号,后面的为0,所以还要再判断||前面部分。 如果后面的为1,则不需要再判断了。然后首先判断了X=a:a赋值给X是否成功,成功为1,然后!(X=a),即!1为0,0与任何数 取&& 都为 0 ,所以 !(X=a)&&(y=b)II0 的结果会为 0 。 2. 如果你的意思是 !(X==a)&&(y==b)II0这样来看#include "stdio.h"
#include "math.h"
void main()
{
int X=2 ,a=1,b=1,y=1;
printf("%d",!(X==a)&&(y==b)||0);
}判断到 || 符号,后面的为0,所以还要再判断 || 前面部分。这个时候因为X==a是false的,所以!(X==a) 是true的,而y==b是true的,所以!(X==a)&&(y==b)是true的,所以打印出来的结果是1 如果把X=2;换一下#include "stdio.h"
#include "math.h"
void main()
{
int X=1,a=1,b=1,y=1;
printf("%d",!(X==a)&&(y==b)||0);
}判断到X==a是true的,所以!(X==a) 是false的,所以 false &&' 其他' 都是false的,false || 0 也是false的,所以打印结果为 0 求|| 规则true || true -> true (1) true || false -> true (1) false || true -> true (1) false || false -> false (0) 求 && 规则true && true -> true (1) true && false -> false (0) false && true -> false (0) false && false -> false (0)
温馨提示:内容为网友见解,仅供参考
第1个回答  2014-01-10
先执行“!”再执行“&&”再执行“||”
相似回答