逻辑运算符的实例问题
#include<stdio.h>int main()
{
int ia=10 ,ib=0;
printf("the 1 is Ture,0 is False\n");
printf("5<ia&&ib is %d\n",5<ia&&ib);
printf("5<ia||ib is %d\n",5<ia||ib);
ib=!!ia;
printf("ib is %d\n",ib);
return 0;
}
显示的是0 1 1 但是我不懂第三个输出为什么是 1 还有前面两个的含义是什么? <的优先级高于&&和||
先算5<ia为真,1&&ib为假输出0
同理1||ib为真
第三个!ia为0,!0为1 你可以去看看小甲鱼的算术符的优先级别
第一个:先算5是不是小于ia,得出是真值,即1。然后算1 && ib,即1且0,得出的是假值,即0,所以最终输出0
第二个:先算5是不是小于ia,得出是真值,即1。然后算1 || ib,即1或0,得出的是真值,即1,所以最终输出1
第三个: 等号是把右边的全部内容赋值给左边。ia是10,即真值(一切非0的数都是真值), !ia即非真值,那 么就是假值,然后再加一个!,就是非非真值,最终得出来的就是真值,即1. 你去看一下逻辑算符的运算规则
页:
[1]