我的试卷中有一个问题,我们必须比较 int 类型变量的值。我想到的第一个想法是它缺少 && 运算符,但我不确定。
int a=2, b=2, c=2;
if(a==b==c)
{
printf("hello");
}
我有一个疑问,上面的语句会在 c 或 c++ 中执行吗?我也可以有原因吗?谢谢你
我的试卷中有一个问题,我们必须比较 int 类型变量的值。我想到的第一个想法是它缺少 && 运算符,但我不确定。
int a=2, b=2, c=2;
if(a==b==c)
{
printf("hello");
}
我有一个疑问,上面的语句会在 c 或 c++ 中执行吗?我也可以有原因吗?谢谢你
它会执行,但我相信你会得到意想不到的结果。
其中一个==
将评估为布尔值,然后将其转换为 an int
,然后将执行第二次比较,将 anint
与1
or进行比较0
。
正确的说法是a==b && b==c
。
例如:
3 == 3 == 3
评估为
true == 3
1 == 3
false
a==b==c
相当于
(a == b) == c
结果a == b
是1
(如果为真)或0
(如果为假),因此它可能无法达到您的预期。
用于a == b && b == c
检查三个对象的值是否相等。
a == b == c 是 c 与 a==b(1 或 0)运算结果之间的比较。
使用a==b&&b==c
. 条件a==b==c
相当于(a==b)==c
if c==1 将提供所需结果,否则代码将失败。