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中意味着什么?
答案 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
会改变已编译代码的行为。