首先一点, 不管是什么值,只要不是0, 在逻辑运算的时候,就是当1处理的.
于是 (x&&y)==x||z)
虽然少了一个( 但不管这个(放在哪里, 一群1做逻辑运算,在没有逻辑非符号情况下,结果也必然是1.
结果:
1
x&&y:只要x和y中任意一个不为0,结果就是1
x||y:除非x和y2个都为0,不然结果就是1
&&:其实就是 与
||:就是 或
#include
main()
{
int x,y,z;
x=3;
y=-4;
z=5;
int a;
a=((x&&y)==x||z);
printf("%d",a);
printf("\n%d",(x&&y));
printf("\n%d",(x||z));
}
自己运行下就可以知道了
一般的c编译器认为真为1,假为0,那么这个题的结果为:
X&&Y的值为1
1==X的值为0
0||Z的值为1
所以整个表达式的值为1
c语言里认为0为逻辑假,非0就是逻辑真,正负是没有关系的
等于0;