„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Warum führt das Drucken eines Funktionsnamens in C++ zu „1“?

Warum führt das Drucken eines Funktionsnamens in C++ zu „1“?

Veröffentlicht am 08.11.2024
Durchsuche:185

Why Does Printing a Function Name in C   Result in \

Bearbeiten einer Funktion ohne Aufruf: Das Geheimnis lüften

Stellen Sie sich Folgendes vor: Sie programmieren weg und anstatt 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:

#include 
using namespace std;

void pr()
{
    cout 

Entgegen Ihrer Absicht rufen Sie die Funktion pr in den cout

Um Ihr Verständnis zu verbessern, sollten Sie vor dem Drucken die Verwendung von cout

Während C 11 eine elegante Lösung bietet:

template 
std::ostream & operator

Mit dieser Überladung können Sie Funktionszeiger beliebiger Arität drucken und Informationen wie die Adresse des Funktionszeigers und die Anzahl seiner Argumente anzeigen.

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.

Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3