什么是b = a&& b是指C?

时间:2017-01-17 22:41:11

标签: c logic logical-operators

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中意味着什么?

1 个答案:

答案 0 :(得分:1)

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

但是,C中还有二进制&&运算符,它是bitwise AND并且执行与&不同的操作。这也可能是C代码中的混淆和意外错误/错误的根源,因为&&中意外遗漏了pip install --upgrade gmplot会改变已编译代码的行为。

相关问题