Di sini kita akan melihat teka-teki. Katakan ada program seperti di bawah, kita kena beritahu apa itu output dan kenapa?
#include<iostream> using namespace std; int main() { int x = 0xab; ~x; cout << hex << x; }
Jadi apakah outputnya? ~x sedang menjalankan operasi pelengkap. Jadi adakah ia memaparkan hasil pelengkap kedua-duanya dalam heks?
Output adalah seperti berikut
ab
Jadi, tiada perubahan. tapi kenapa? Sebabnya ialah ~x sedang menukar x kepada bentuk pelengkapnya, tetapi nilainya tidak diberikan kepada mana-mana pembolehubah. Ungkapan ini ialah ungkapan nilai R. Nilai l tidak disimpan ke dalam beberapa pembolehubah sehingga ia digunakan. Jika kita masukkan nilai L ia akan kelihatan seperti ini -
#include<iostream> using namespace std; int main() { int x = 0xab; x = ~x; cout << hex << x; }
ffffff54
Atas ialah kandungan terperinci Teka-teki tentang ungkapan C/C++ R-Value?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!