y > 1)` dalam C Evaluate as Expected? " />
Menilai Operator Logik Berantai: (4 > y > 1) dalam C
Ungkapan (4 > y > 1) dalam C menimbulkan persoalan tentang kesahihan dan penilaiannya penjelasan:
Kesahihan:
Ungkapan itu sendiri sah dari segi sintaksis dalam C , tetapi tafsiran semantiknya mungkin tidak dijangka.
Tertib Penilaian :
C menilai operator logik dari kiri ke kanan. (4 > y > 1) dihuraikan sebagai ((4 > y) > 1).
Tafsiran Semantik:
Ungkapan ((4) > y) > 1) membandingkan keputusan (4 > y) dengan 1. (4 > y) mengembalikan 1 jika y kurang daripada 4, dan 0 sebaliknya.
Keputusan:
Memandangkan 0 atau 1 tidak pernah lebih besar daripada 1, ungkapan ((4 > y) > 1) sentiasa menilai kepada palsu. tidak pernah benar, tanpa mengira nilai y.
Tulis Semula:
Ungkapan yang lebih bermakna ialah menggunakan logik DAN (&&) dan bukannya dirantai lebih besar daripada pengendali. Contohnya:
(4 > y) && (y > 1)
Ungkapan ini benar hanya jika kedua-dua (4 > y) dan (y > 1) adalah benar.
Pengecualian:
Dalam kes tertentu, gelagat pengendali logik berantai mungkin berbeza daripada hasil yang dijangkakan. Khususnya, jika y ialah tika kelas yang melebihkan > pengendali, hasilnya boleh bergantung pada cara pengendali dilaksanakan.
Atas ialah kandungan terperinci Adakah `(4 > y > 1)` dalam C Menilai Seperti Yang Dijangkakan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!