Operator Bersyarat dalam C lawan C
Operator bersyarat (?) dalam C mempamerkan perbezaan halus daripada rakan sejawatannya dalam C, terutamanya dalam keupayaannya untuk mengembalikan nilai.
Mengembalikan Nilai
Dalam C , pengendali bersyarat boleh mengembalikan nilai, iaitu pembolehubah atau ungkapan yang boleh diberikan kepada . Ini membenarkan operasi seperti:
<code class="c++">(true ? a : b) = 1;</code>
Dalam contoh ini, pembolehubah a diberikan nilai 1 jika keadaan benar adalah benar.
Sebaliknya, C tidak membenarkan nilai l untuk dikembalikan oleh pengendali bersyarat. Untuk mencapai kesan yang serupa, seseorang mesti menggunakan pernyataan if/else atau memanipulasi rujukan secara langsung:
<code class="c">*(true ? &a : &b) = 1;</code>
Keutamaan Operator
Selain itu, operator bersyarat C mempunyai sama keutamaan dengan pengendali tugasan (=) dan kumpulan dari kanan ke kiri. Ini bermakna kod seperti:
<code class="c++">true ? a = 1 : b = 2;</code>
adalah sah. Walau bagaimanapun, dalam C, tanpa tanda kurungan melampirkan ungkapan terakhir:
<code class="c">true ? a = 1 : (b = 2);</code>
ralat akan berlaku.
Atas ialah kandungan terperinci Bagaimanakah Fungsi Operator Bersyarat Berbeza Antara C dan C?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!