Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah C Menilai Pengendali Perbandingan Berantai Seperti (4 > y > 1)?

Bagaimanakah C Menilai Pengendali Perbandingan Berantai Seperti (4 > y > 1)?

Patricia Arquette
Patricia Arquetteasal
2024-12-14 18:29:15337semak imbas

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

Operator Logikal Berantai: Menilai (4 > y > 1) dalam C

Pernyataan (4 > y > 1) dalam C mungkin kelihatan logik, tetapi penilaiannya mengikut susunan tertentu operasi.

Penghuraian dan Susunan Penilaian

Pernyataan dihuraikan sebagai ((4 > y) > 1). ) dinilai dari kiri-ke-kanan Ungkapan 4 > 1.

Penilaian Keputusan

Memandangkan 0 atau 1 tidak pernah lebih besar daripada 1, keseluruhan pernyataan akan sentiasa kembali palsu Walau bagaimanapun, pengecualian berlaku apabila y ialah objek daripada kelas di mana pengendali > terbeban hasil.

Pengecualian Terlebih Muatan

Pertimbangkan coretan kod berikut:

class mytype{};

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

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

    return 0;
}

Dalam contoh ini, di mana y ialah kelas mytype dan > ; operator terlebih beban, kod akan gagal untuk disusun.

Atas ialah kandungan terperinci Bagaimanakah C Menilai Pengendali Perbandingan Berantai Seperti (4 > y > 1)?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn