Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Mengapa pengendali bersyarat mengendalikan lnilai secara berbeza dalam C dan C?

Mengapa pengendali bersyarat mengendalikan lnilai secara berbeza dalam C dan C?

Patricia Arquette
Patricia Arquetteasal
2024-11-07 16:45:02192semak imbas

Why does the conditional operator handle lvalues differently in C and C  ?

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn