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

Patricia Arquette
Lepaskan: 2024-11-07 16:45:02
asal
191 orang telah melayarinya

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;
Salin selepas log masuk

Walau bagaimanapun, C mengehadkan fungsi ini, memerlukan penggunaan rujukan if/else atau langsung:

*(true ? &a : &b) = 1;
Salin selepas log masuk

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);
Salin selepas log masuk

Sebaliknya, C memerlukan kurungan untuk menyelesaikan ungkapan tersebut:

(true ? a = 1 : (b = 2));
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!