【问题标题】:What does b = a && b mean in C?b = a && b 在 C 中是什么意思?
【发布时间】:2017-01-17 22:41:10
【问题描述】:
a=5; b=0; c=1;
if(b=2) c = a++ & b;
else a=4;
b = a && b; 

代码在 C 中。这段代码将如何工作? a、b、c 有什么值?什么 b = a && b 在 C 中是什么意思?

【问题讨论】:

  • 它会出现在任何像样的 C 书籍的前两章中。
  • a && b 的值等于01
  • 这段代码也有语法错误
  • if(b=2)
  • @Mohsen_Fatemi 这些只是一行中的 3 个语句。没有语法错误,但格式很差。

标签: c logic logical-operators


【解决方案1】:

在 C 中,&& 是逻辑与运算符。因此a && b 是逻辑运算“a AND b”的结果。由于 C 最初没有布尔类型,因此您经常看到 int 被“滥用”作为替代。如果int 具有非零值,则为“真”,如果为零,则为“假”。 (我认为 C99 添加了一些名为 _Bool 的布尔类型,但我不太确定那个。)所以表达式 a && b 的结果是 1,如果 a 和 b 都非零,或者为零如果(至少)其中之一为零。这也是 b = a && b; 中分配给 b 的内容。

但是,C 中也有二进制 & 运算符,即 bitwise AND,它的作用与 && 不同。这也可能是 C 代码中混淆和意外错误/错误的来源,因为在 && 中意外丢失 & 会更改编译代码的行为。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2012-06-14
  • 1970-01-01
  • 2022-11-10
  • 1970-01-01
  • 2017-02-02
  • 2013-12-16
  • 2020-02-09
  • 2011-11-21
相关资源
最近更新 更多