So geben Sie eine Zeigeradresse mit cout von C aus
Beim Versuch, einen Zeichenzeiger mit cout auszugeben, entscheidet sich der Stream für eine Behandlung es als Zeichenfolge und nicht als Adresse. Dieses Verhalten entsteht aufgrund der Überladungsauflösung, bei der cout einen Operator auswählt, der dem Typ des Arguments entspricht.
In diesem Fall wählt cout den Operator aus, der für das Drucken von Zeichenfolgen im C-Stil definiert ist:
<code class="cpp">ostream& operator<<(ostream& o, const char *c);
Sie müssen jedoch die Überladung zum Drucken von Zeigern auswählen:
<code class="cpp">ostream& operator<<(ostream& o, const void *p);
Um den char-Zeiger explizit in einen generischen Zeiger umzuwandeln, verwenden Sie die folgende Syntax:
<code class="cpp">cout << static_cast<void *>(cptr) << endl;</code>
Diese Umwandlung informiert cout dass Sie beabsichtigen, die Adresse des Zeigers und nicht die Zeichenfolge, auf die er zeigt, auszugeben.
Das obige ist der detaillierte Inhalt vonWie drucke ich eine Zeigeradresse mit C's cout?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!