我尝试在C中运行以下代码:
#include <stdio.h>
int main() {
int a = 10, b = 5, c = 5;
int d;
d = b + c == a;
printf("%d", d);
}
我的输出为d = 1
。有人可以向我解释当我们使用这样的==
时会发生什么吗?
答案 0 :(得分:1)
§6.5.9(==和!=) - http://c0x.coding-guidelines.com/6.5.9.html
==(等于)和!=(不等于)运算符类似于关系运算符,除了它们的优先级较低。)如果指定的关系为真,则每个运算符产生1,如果为假,则每个运算符产生0 。结果是int类型。 对于任何一对操作数,其中一个关系是正确的。
因此,b+c
等于a
,因为它们都具有值10
,因此它会产生1
。
答案 1 :(得分:0)
因为首先执行b + c,然后使用==运算符进行评估比较。
答案 2 :(得分:0)
在c中,加法的优先级高于==
,所以它在将结果与a进行比较之前加上b和c,因为它是真的它会产生1,如果它是假的,它将导致0。 / p>
答案 3 :(得分:0)
==
是等于运算符。如果双方相等则返回1
,否则返回0
。