0

テストペーパーで、int 型変数の値を比較しなければならない問題がありました。私の頭に浮かんだ最初の考えは、 && 演算子が欠落しているということでしたが、よくわかりません。

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

上記のステートメントが c または c++ で実行されるかどうかは疑問です。理由も言えますか。ありがとうございました

4

4 に答える 4

10

それは実行されますが、予想外の結果になると私は信じています。

の 1 つが==ブール値に評価され、それが に変換されてから、を または のいずれかとint比較して 2 番目の比較が実行されます。int10

正しい記述はa==b && b==c.

例えば:

3 == 3 == 3

に評価されます

true == 3
1 == 3
false
于 2013-07-08T18:13:40.510 に答える