Rumah >pembangunan bahagian belakang >C++ >Adakah (4 > y > 1) Sentiasa Menilai kepada Salah dalam C ?

Adakah (4 > y > 1) Sentiasa Menilai kepada Salah dalam C ?

Barbara Streisand
Barbara Streisandasal
2024-12-25 16:49:09226semak imbas

Does (4 > y > 1) Sentiasa Nilaikan ke Salah dalam C ?
y > 1) Sentiasa Nilaikan kepada Salah dalam C ? " />

Menilai Kesahan (4 > y > 1) dalam C

Dalam C , ungkapan (4 > y > 1) mungkin menimbulkan persoalan tentang kesahihan dan penilaiannya.

Untuk memahami tingkah lakunya, adalah penting untuk mengetahui bahawa rantaian operator perbandingan, seperti (4 > y > 1), dihuraikan sebagai perbandingan bersarang dari kiri ke kanan Oleh itu, pernyataan:

(4 > y > 1)

dihuraikan sebagai:

((4 > y) > 1)
<.>Operator perbandingan (> dan <) menilai dalam susunan ungkapan, yang bermaksud bahawa keputusan (4 > y) adalah sama ada 0 (salah) atau 1 (benar) bergantung pada perbandingan.

Kemudian, hasil (4 > y) dibandingkan dengan 1 menggunakan operator lebih besar (>), bagaimanapun, sejak hasilnya daripada (4 > y) sentiasa sama ada 0 atau 1, ia tidak akan lebih besar daripada 1. Oleh itu, keseluruhan pernyataan sentiasa kembali false.

Pengecualian untuk Lebih Muatan Operator:

Walau bagaimanapun, terdapat pengecualian untuk gelagat ini jika y ialah objek kelas dengan lebih besar daripada operator (>), penilaian mungkin berubah. Dalam kes sedemikian, pelaksanaan pengendali yang terlebih beban menentukan tingkah laku ungkapan.

Contoh:

Pertimbangkan 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, pengendali pengendali tersuai> untuk kelas mytype digunakan, yang mungkin menghasilkan tingkah laku yang berbeza mengikut pelaksanaan kelas.

Atas ialah kandungan terperinci Adakah (4 > y > 1) Sentiasa Menilai kepada Salah dalam C ?. 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