Heim  >  Artikel  >  Backend-Entwicklung  >  Wie drucke ich Adressen mit Char-Zeigern mit „cout“?

Wie drucke ich Adressen mit Char-Zeigern mit „cout“?

DDD
DDDOriginal
2024-11-03 21:10:03866Durchsuche

How to Print Addresses with Char Pointers Using `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 << cptr << endl;
  return 0;
}

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.

Lösung:

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:

<code class="cpp">cout << static_cast<void *>(cptr) << endl;</code>

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.

korrekt gedruckt

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn