char ポインターを扱う場合、アドレスを出力するか文字列を出力するかの選択内容が混乱する可能性があります。 printf() の場合、変換指定子に基づいて明確に決定されます。ただし、cout に関しては、選択プロセスはそれほど明確ではありません。
C では、 cout は ostream クラスのインスタンスであり、operator< の複数のオーバーロードされたバージョンを提供します。 ;
この動作をオーバーライドして、代わりにアドレスを出力するには、キャスト必要です。目的のオーバーロードは、入力として void ポインターを受け取ります。したがって、次のコードを使用できます。
<code class="c++">cout << static_cast<void *>(cptr) << endl;</code>
このキャストは、char ポインターを void ポインターに明示的に変換し、cout に適切なオーバーロードの使用を強制します。その結果、chのアドレスが出力されます。
以上がCでcoutを使用してcharポインタのアドレスを出力するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。