Heim >Backend-Entwicklung >C++ >Warum funktioniert das nicht?

Warum funktioniert das nicht?

Barbara Streisand
Barbara StreisandOriginal
2024-12-26 21:20:11816Durchsuche

Why Doesn't the `

Drucken von Funktionszeigern mit << Operator

Beim Versuch, einen Funktionszeiger mit der Funktion << kann es zu unerwarteten Ergebnissen kommen. Durch das Konvertieren des Funktionszeigers in ein void* und die Verwendung der printf-Funktion mit dem %p-Format wird der gewünschte Wert erfolgreich gedruckt.

Interpretation des Funktionszeigers durch << Operator

Das Verhalten des << Operator mit einem int (*)()-Funktionszeiger ist unerwartet. In diesem Fall wird der Zeiger in einen booleschen Wert konvertiert, wie durch die boolesche Konvertierungsregel des C-Standards für Zeiger definiert.

Ausgabeverhalten mit void*

Wenn a Der Typ void* wird an << übergeben. Operator wird der Inhalt des Zeigers im Hexadezimalformat ausgegeben. Dies liegt an einer überlasteten Version von << Operator, der speziell für leere Zeiger entwickelt wurde.

Member-Funktionszeiger beobachten

Member-Funktionszeiger können nicht direkt mit dem Befehl << gedruckt werden. Betreiber aufgrund ihrer komplexen Struktur. Um den Inhalt eines Mitgliedsfunktionszeigers zu beobachten, muss eine alternative Methode verwendet werden.

Das obige ist der detaillierte Inhalt vonWarum funktioniert das nicht?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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