Heim >Backend-Entwicklung >C++ >Warum funktioniert das nicht?
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!