可以是表达式!
2*2==5<2*2==4
中,<优先级别比==要高。
因而实际上那个表达式与下列等同:
2*2==(5<2*2)==4
于是,你先比较4 == 0,然后把结果(0)再与4比较。0==4,因为不相等,所以表达式最终结果为0
故而输出F
你可以这样试试!
就会知道优先级别和怎么发生的啦!
printf("%d\n",2*2==5);
printf("%d\n",2*2==5<2*2);
printf("%d\n",(2*2==5)<2*2);
printf("%d\n",2*2==(5<2*2)==4);
if( 2*2==5<2*2==4 ){
printf("%d\n",2*2==5<2*2==4);
printf("T");
}
else{
printf("%d\n",2*2==5<2*2==4);
printf("F");
}
可以,只要最后返回的是bool型
主要看运算符优先级
2*2==5<2*2==4
1. 4==5<4==4
2. 4==0==4
3.0==4
4.0
所以输出F
可以的,C语言运算符优先级,*高于<高于==,执行完之后,看这个表达式是否为真,真则
输出T
否则
输出F
if括号后面的语句可以是表达式
IF括号内表达式为假(5不大于4) 所以执行ELSE语句后的表达式 故结果为F
运算符的优先级:*的优先级最高,其次是<,最后是==,在if语句中先计算两组2*2得出4,变成if(4==5<4==4),然后计算5<4得出0,变成if(4==0==4),0和4明显不相等,if语句输出结果为0,也就是假。
当if输出为1时,输出T
当if输出为0时,输出F
所以结果是F