Beim Umgang mit Char-Zeigern besteht die Wahl zwischen der Ausgabe der Adresse oder der Zeichenfolge Inhalte können verwirrend sein. Im Fall von printf() ist die Entscheidung anhand des Konvertierungsspezifizierers eindeutig. Wenn es jedoch um cout geht, ist der Auswahlprozess weniger offensichtlich.
In C ist cout eine Instanz der Klasse ostream, die mehrere überladene Versionen des Operators< bietet ;<. Beim Drucken eines char-Zeigers muss der Compiler bestimmen, welche Überladung verwendet werden soll. Standardmäßig priorisiert cout die für Zeichenfolgen im C-Stil vorgesehene Überladung, die den Zeichenfolgeninhalt ausgibt.
Um dieses Verhalten zu überschreiben und stattdessen die Adresse zu drucken, ist eine Umwandlung erforderlich ist notwendig. Die gewünschte Überladung benötigt einen void-Zeiger als Eingabe. Daher können Sie den folgenden Code verwenden:
cout << static_cast(cptr) << endl;
Diese Umwandlung wandelt den char-Zeiger explizit in einen void-Zeiger um und zwingt cout, die entsprechende Überladung zu verwenden. Als Ergebnis wird die Adresse von ch gedruckt.
Das obige ist der detaillierte Inhalt vonWie drucke ich die Adresse eines char-Zeigers mit cout in C?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!