逻辑AND运算符在c吐出1

Pau*_*bel 2 c

int a;
scanf("%i", &a);
printf("%i", a&&1);
Run Code Online (Sandbox Code Playgroud)

在这个程序中,无论输入是什么,它都会吐出1,即使我尝试偶数.唯一的例外是a = 0.我可能无法正确理解AND运算符,但是对于任何偶数,输出应该不是0?

Iha*_*imi 5

因为&&如果操作数都不为零,则运算符返回非零值.也许你的意思是&.

int a;
if (scanf("%i", &a) == 1)
    printf("%i", a & 1);
Run Code Online (Sandbox Code Playgroud)
  • &&是逻辑AND运算符.
  • &是按位运算AND符.