为什么以下声明:
int a = 10;
a&8 == 8;
Run Code Online (Sandbox Code Playgroud)
return false(0)?
我知道它==有更多的优先权&,但它仍然应该检查8 == 8它是否应该评估为真,但它的评估为假.
任何人都可以通过推理帮助我.
有什么特别的原因,为什么在输入C(scanf)时更喜欢采用变量的内存位置而不是变量本身的名称?我知道上面强制要求的scanf的定义?但有什么特别的原因吗?就像在c ++中一样,如果你想要输入,你会写cin >> var; 但为什么不呢?是否可以让语言更快?
我对运算符的优先级感到困惑,并想知道如何评估这个语句.
# include <stdio.h>
int main()
{
int k=35;
printf("%d %d %d",k==35,k=50,k>40);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
这里k最初的价值是35,当我在测试k时printf我认为:
k>40 应该检查哪个应该导致0k==35 应该检查,哪个应该导致1k,哪个应该输出50所以最终输出应该是1 50 0,但输出是0 50 1.