Percanggahan Operator Bersyarat Antara C dan C
Pengendali bersyarat (?) menawarkan gelagat yang berbeza-beza dalam C dan C . Khususnya, ini melibatkan keupayaannya untuk mengembalikan nilai.
Dalam C , pengendali boleh mengembalikan nilai, membenarkan ungkapan seperti:
(true ? a : b) = 1;
Walau bagaimanapun, C mengehadkan fungsi ini, memerlukan penggunaan rujukan if/else atau langsung:
*(true ? &a : &b) = 1;
Selain itu, C memberikan keutamaan yang sama kepada pengendali ?: dan =, mengumpulkannya dari kanan ke kiri. Ini bermakna yang berikut betul dari segi sintaksis dalam C :
(true ? a = 1 : b = 2);
Sebaliknya, C memerlukan kurungan untuk menyelesaikan ungkapan tersebut:
(true ? a = 1 : (b = 2));
Atas ialah kandungan terperinci Mengapa pengendali bersyarat mengendalikan lnilai secara berbeza dalam C dan C?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!