Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah Pengendali Bersyarat C (?:) Menentukan Nilai L atau Nilai R Berdasarkan Jenis Operan?
Taip Sistem dan Kategori Nilai dalam Operator Bersyarat (?:)
Dalam C , pengendali bersyarat (?:) menilai kepada a nilai jenis dan kategori nilai tertentu, yang mentakrifkan sama ada ia boleh merujuk kepada objek dalam ingatan atau tidak.
Pada yang pertama contoh disediakan:
int x = 1; int y = 2; (x > y ? x : y) = 100;
Kedua-dua x dan y ialah pembolehubah int, dan keadaan x > y adalah palsu. Oleh itu, y diberikan nilai 100. Memandangkan jenis kedua-dua operan adalah sama, ungkapan bersyarat itu sendiri menjadi lnilai, yang bermaksud ia boleh diberikan kepada.
Walau bagaimanapun, dalam contoh kedua:
int x = 1; long y = 2; (x > y ? x : y) = 100;
x ialah int dan y ialah panjang, menjadikan jenis operan berbeza. Untuk membandingkan x dan y, penukaran diperlukan, yang menyebabkan ungkapan bersyarat menjadi rnilai dan bukannya lnilai. Memandangkan nilai r tidak boleh diberikan kepada, tugasan dalam kes ini adalah tidak sah.
Untuk meringkaskan, ungkapan bersyarat ialah nilai l jika operan kedua dan ketiga ialah nilai daripada jenis yang sama, membenarkan penetapan kepada keputusan. Jika mereka mempunyai jenis yang berbeza, ungkapan bersyarat menjadi nilai r, yang tidak boleh diberikan kepada.
Atas ialah kandungan terperinci Bagaimanakah Pengendali Bersyarat C (?:) Menentukan Nilai L atau Nilai R Berdasarkan Jenis Operan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!