How is i==(20||10) evaluated?

后端 未结 2 1612
有刺的猬
有刺的猬 2020-12-07 06:35
#include 
int main(void)
{
   int i=10;
   if(i==(20||10))
       printf(\"True\");
   else
       printf(\"False\");
   return 0;
}

2条回答
  •  失恋的感觉
    2020-12-07 07:17

    This line if(i==(20||10)) always evaluates to i==1 as Alk said in comments - (20||10) evaluates to 1, hence when you compare i == 1, that is why you get False as the output. A non-Zero value in C implies true.

    Read about Short-circuit evaluation

    Perhaps this is what you wanted:

    int i=10;
    if(i==20 || i == 10)
        printf("True");
    else
        printf("False");
    

提交回复
热议问题