为什么&操作符只在变量中工作,而不在内联语句中工作

printf("%in",2&2==2);

这应该打印出一个 1 但我得到一个 0,这是为什么?

int ans=2&2;
printf("%in",ans==2);

这打印了一个 1,为什么第一种方法不起作用?if 语句也是这种情况

回答

操作顺序与您想象的不同。将其写在一行中的正确方法是:

printf("%in", (2 & 2) == 2); // Prints 1


以上是为什么&操作符只在变量中工作,而不在内联语句中工作的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>