Heim > Artikel > Backend-Entwicklung > Rätsel um C/C++-R-Wert-Ausdruck?
Hier sehen wir ein Rätsel. Angenommen, es gibt ein Programm wie das folgende, wir müssen sagen, was ausgegeben wird und warum?
#include<iostream> using namespace std; int main() { int x = 0xab; ~x; cout << hex << x; }
Was ist also die Ausgabe? ~x führt eine Komplementoperation aus. Wird also das Zweierkomplementergebnis im Hexadezimalformat angezeigt?
Die Ausgabe ist wie folgt
ab
Also keine Änderungen. aber warum? Der Grund dafür ist, dass ~x x in seine Komplementform umwandelt, der Wert jedoch keiner Variablen zugewiesen wird. Dieser Ausdruck ist ein R-Wert-Ausdruck. Der L-Wert wird erst dann in einer Variablen gespeichert, wenn er verwendet wird. Wenn wir den L-Wert eingeben, sieht es so aus:
#include<iostream> using namespace std; int main() { int x = 0xab; x = ~x; cout << hex << x; }
ffffff54
Das obige ist der detaillierte Inhalt vonRätsel um C/C++-R-Wert-Ausdruck?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!