Heim  >  Artikel  >  Backend-Entwicklung  >  Rätsel um C/C++-R-Wert-Ausdruck?

Rätsel um C/C++-R-Wert-Ausdruck?

WBOY
WBOYnach vorne
2023-09-15 18:05:021076Durchsuche

C/C++ R-Value表达式上的谜题?

Hier sehen wir ein Rätsel. Angenommen, es gibt ein Programm wie das folgende, wir müssen sagen, was ausgegeben wird und warum?

Beispiel

#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

Ausgabe

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:

Beispiel

#include<iostream>
using namespace std;
int main() {
   int x = 0xab;
   x = ~x;
   cout << hex << x;
}

Ausgabe

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!

Stellungnahme:
Dieser Artikel ist reproduziert unter:tutorialspoint.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen