- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:C++の問題で困っています。)
C++の問題に困っています
このQ&Aのポイント
- C++の入門書の演習問題に取り組んでいますが、答えがなく悩んでいます。
- 問題としては、文字列 s に含まれる最も先頭に位置する文字 c へのポインタを返す関数 strchr_ptr を作成することです。
- コンパイルして実行するとアドレス的な表記がされず、どうすればいいか分かりません。初歩的な質問ですが、教えてください。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
> cout << strchr_ptr(s, 'X') << "\n"; cout << static_cast<void*>(strchr_ptr(s, 'X')) << "\n"; としてください。 > cout << &s + 4 << "\n"; こちらも間違っています。 cout << static_cast<void*>(s + 4) << "\n"; としてください。
その他の回答 (1)
- επιστημη(@episteme)
- ベストアンサー率46% (546/1184)
回答No.2
int main() { char s[36] = "ABSZXYX"; cout << static_cast<void*>(strchr_ptr(s, 'X')) << "\n"; cout << static_cast<void*>(s + 4) << "\n"; }
質問者
お礼
なるほど! 下の方のご回答でも知りましたが、やはりこういうときはvoid型へのポインタに型キャストしてから表示するんですか! 回答ありがとうございました。 下の方とほとんど変わらない説明をしてくださっているのですが、下の方のほうが早かったということで、下の方をベストアンサーに選ばせていただきます。 ごめんなさい。
お礼
なるほど! こういう時には char へのポインタだと文字列の表示になってしまうから, どの型にでも対応できる void へのポインタにキャストしてから表示するんですね。 まさかこんな所で void へのポインタへ型キャストするなんて思いもしませんでした・・。 ありがとうございました!