Rumah >pembangunan bahagian belakang >C++ >Adakah (4 > y > 1) Sentiasa Menilai kepada 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!