Heim >Backend-Entwicklung >C++ >Warum führt das Drucken eines Funktionsnamens in C zu „1'?
Eine Funktion ohne Aufruf erläutern: Das Geheimnis lüften
Stellen Sie sich Folgendes vor: Sie programmieren weg und statt eine Funktion mit Klammern aufzurufen, Sie drucken einfach den Namen aus. Überraschenderweise ist das Ergebnis immer 1. Dieser unkonventionelle Ansatz lässt Sie ratlos zurück, sowohl über die Einsen als auch über das Fehlen des erwarteten Funktionszeigers.
Lassen Sie uns in die Feinheiten Ihres Codes eintauchen:
<code class="c++">#include <iostream> using namespace std; void pr() { cout <p>Entgegen Ihrer Absicht rufen Sie die Funktion pr im cout</p> <p>Um Ihr Verständnis zu verbessern, sollten Sie die Verwendung von cout </p> <p>Während C 11 eine elegante Lösung bietet:</p> <pre class="brush:php;toolbar:false"><code class="c++">template <class rtype class ... argtypes> std::ostream & operator<p>Mit dieser Überladung können Sie Funktionszeiger beliebiger Stelligkeit drucken und zeigt Informationen wie die Adresse des Funktionszeigers und die Anzahl seiner Argumente an.</p> <p>Da haben Sie es also: Die rätselhaften Einsen sind kein bloßer Zufall, sondern das Ergebnis einer impliziten Typkonvertierung. Das Verständnis dieses Verhaltens ist entscheidend, um unerwartete Ergebnisse zu vermeiden und robusteren Code zu erstellen.</p></class></code>
Das obige ist der detaillierte Inhalt vonWarum führt das Drucken eines Funktionsnamens in C zu „1'?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!