Heim >Backend-Entwicklung >C++ >Wie drucke ich Adressen mit Char-Zeigern mit „cout'?
Cout-Interpretation von Char-Zeigern
Im Gegensatz zu printf(), das spezifische Konvertierungsspezifizierer (%u oder %s) bietet, um zu bestimmen, ob dies der Fall ist Geben Sie eine Adresse oder die gesamte Zeichenfolge aus, auf die ein char-Zeiger zeigt. cout erfordert einen expliziten Ansatz für diese Unterscheidung.
Beispielproblem:
Bedenken Sie den folgenden Codeausschnitt:
<code class="cpp">int main() { char ch = 'a'; char *cptr = &ch; cout <p>In diesem Beispiel interpretiert cout mit dem Standard-GNU-Compiler den char-Zeiger als eine Zeichenfolge im C-Stil und versucht, das Zeichen auszugeben, auf das cptr zeigt. Wenn jedoch stattdessen die Adresse von ch gedruckt werden soll, ist ein anderer Ansatz erforderlich.</p> <p><strong>Lösung:</strong></p> <p>So drucken Sie die Adresse von ch mit cptr mit cout ist eine explizite Typumwandlung erforderlich. Dies wird durch die Verwendung des static_cast erreicht. Operator, wie unten gezeigt:</p> <pre class="brush:php;toolbar:false"><code class="cpp">cout (cptr) <p>Durch die explizite Umwandlung von cptr in void * wählt die Überladungsauflösung den entsprechenden ostream&-Operator aus, der einen void-Zeiger als Argument verwendet. Dadurch wird die Adresse von ch.</p> korrekt gedruckt</code>
Das obige ist der detaillierte Inhalt vonWie drucke ich Adressen mit Char-Zeigern mit „cout'?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!