
Hier sehen wir ein Rätsel. Angenommen, es gibt ein Programm wie das folgende, wir müssen sagen, was ausgegeben wird und warum?
#includeusing 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:
#includeusing 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!
Welche mobilen Betriebssysteme gibt es?
nozoomer
Befehl zum Neustart des Servers
Einführung in parametrische Modellierungssoftware
So stellen Sie den binauralen Modus des Bluetooth-Headsets wieder her
Von welcher Marke ist das Nubia-Handy?
Empfohlene Lernreihenfolge für C++ und Python
Eine vollständige Liste der Alter-Befehle in MySQL