if语句中int值的比较

时间:2013-07-08 18:12:10

标签: c++ c comparison

我的测试文件中有一个问题,我们必须比较int类型变量的值。我想到的第一个想法就是错过了&&运营商,但我不确定。

int a=2, b=2, c=2;
if(a==b==c)
{
    printf("hello");
}

我有疑问,上述陈述是否会在c或c ++中执行?我也有理由吗? 谢谢

4 个答案:

答案 0 :(得分:10)

它会执行,但我认为你会有意想不到的结果。

其中一个==将评估为布尔值,然后将其转换为int,然后执行第二次比较,将int1进行比较1}}或0

正确的陈述是a==b && b==c

例如:

3 == 3 == 3

评估为

true == 3
1 == 3
false

答案 1 :(得分:2)

a==b==c

相当于

(a == b) ==  c

a == b的结果是1(如果为真)或0(如果为假),那么它可能无法达到您的预期。

使用a == b && b == c检查三个对象的值是否相等。

答案 2 :(得分:0)

a == b == c是c与== b(1或0)操作的结果之间的比较。

答案 3 :(得分:-1)

使用a==b&&b==c。 条件a==b==c相当于(a==b)==c,如果c == 1,它将提供所需的结果,否则代码将失败。