当我们任意使用==时会发生什么?

时间:2015-07-19 10:55:23

标签: c operators logical-operators relational

我尝试在C中运行以下代码:

#include <stdio.h>

int main() {
   int a = 10, b = 5, c = 5;
   int d;
   d = b + c == a;
   printf("%d", d);
}

我的输出为d = 1。有人可以向我解释当我们使用这样的==时会发生什么吗?

4 个答案:

答案 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