ホームページ  >  記事  >  バックエンド開発  >  Cでcoutを使用してcharポインタのアドレスを出力するにはどうすればよいですか?

Cでcoutを使用してcharポインタのアドレスを出力するにはどうすればよいですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-11-04 11:23:40937ブラウズ

How to Print the Address of a char Pointer using cout in C  ?

C での Char ポインターを使用したアドレスの出力 : printf() と cout の違いを明らかにする

char ポインターを扱う場合、アドレスを出力するか文字列を出力するかの選択内容が混乱する可能性があります。 printf() の場合、変換指定子に基づいて明確に決定されます。ただし、cout に関しては、選択プロセスはそれほど明確ではありません。

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。