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

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

WBOY
Freigeben: 2023-09-15 18:05:02
nach vorne
1102 Leute haben es durchsucht

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;
}
Nach dem Login kopieren

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
Nach dem Login kopieren

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;
}
Nach dem Login kopieren

Ausgabe

ffffff54
Nach dem Login kopieren

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!

Quelle:tutorialspoint.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage