ホームページ > バックエンド開発 > C++ > C は (4 > y > 1) のような連鎖比較演算子をどのように評価しますか?

C は (4 > y > 1) のような連鎖比較演算子をどのように評価しますか?

Patricia Arquette
リリース: 2024-12-14 18:29:15
オリジナル
340 人が閲覧しました

How Does C   Evaluate Chained Comparison Operators Like (4 > y > 1)?
y > 1)? " />

連鎖論理演算子: C の (4 > y > 1) の評価

C のステートメント (4 > y > 1)論理的に見えるかもしれませんが、その評価は次の特定の順序に従います。

解析と評価の順序

ステートメントは ((4 > y) > 1) として解析されます。 ) は左から右に評価され、式 4 > y は true の場合は 0 を返し、false の場合は 1 を返します。

結果の評価

0 または 1 が 1 より大きくなることはないため、ステートメント全体は常に false を返します。ただし、y が の場合は例外が発生します。 > 演算子がオーバーロードされているクラスのオブジェクトの場合、オーバーロードされた演算子の動作が決定します。 result.

オーバーロード例外

次のコード スニペットを考えてみましょう:

class mytype{};

mytype operator>(int x, const mytype &y) {
    return mytype();
}

int main() {
    mytype y;
    cout << (4 > y > 1) << endl;

    return 0;
}
ログイン後にコピー

この例では、y はクラス mytype であり、> ; 演算子がオーバーロードされているため、コードはコンパイルに失敗します。

以上がC は (4 > y > 1) のような連鎖比較演算子をどのように評価しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート