小编Har*_*esh的帖子

评估==和&时的困惑

为什么以下声明:

int a = 10;
a&8 == 8; 
Run Code Online (Sandbox Code Playgroud)

return false(0)?

我知道它==有更多的优先权&,但它仍然应该检查8 == 8它是否应该评估为真,但它的评估为假.

任何人都可以通过推理帮助我.

c evaluation operator-precedence

7
推荐指数
3
解决办法
292
查看次数

为什么在C输入中需要变量的内存位置而不是变量本身的名称?

有什么特别的原因,为什么在输入C(scanf)时更喜欢采用变量的内存位置而不是变量本身的名称?我知道上面强制要求的scanf的定义?但有什么特别的原因吗?就像在c ++中一样,如果你想要输入,你会写cin >> var; 但为什么不呢?是否可以让语言更快?

c memory variables location scanf

0
推荐指数
1
解决办法
151
查看次数

C编程:运算符优先级之间的混淆

我对运算符的优先级感到困惑,并想知道如何评估这个语句.

# 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,当我在测试kprintf我认为:

  1. k>40 应该检查哪个应该导致0
  2. k==35 应该检查,哪个应该导致1
  3. 最后应该分配50 k,哪个应该输出50

所以最终输出应该是1 50 0,但输出是0 50 1.

c operators operator-precedence

0
推荐指数
1
解决办法
543
查看次数