• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:CHAR型ポインタについて。)

CHAR型ポインタについて

このQ&Aのポイント
  • CHAR型ポインタについて。C言語初心者の質問。
  • ポインタ変数に文字列を代入する方法について疑問。アドレスを格納する変数に文字列を代入する記述の正当性と、文字列のメモリ上での格納について。
  • 質問内容はC言語初心者によるCHAR型ポインタの使い方に関する疑問。

質問者が選んだベストアンサー

  • ベストアンサー
  • KEIS050162
  • ベストアンサー率47% (890/1879)
回答No.2

一見、ポインタ型の変数に、文字列そのものを代入している様に見えますが、 ダブルコーテーションで囲まれた文字列は、プログラム領域に文字型の配列として配置され、その先頭アドレスがポンインター型変数に渡されています。 意味合いとしては、 cosnt char s1[] = { 'a','b','c','d','e','f','g', '\0' };; cosnt char *pc1 = s1; と同じです。

dainithi
質問者

お礼

なるほど。一度、プログラム領域に文字型配列が展開されて、そのアドレスがポインタに格納されたのですね。 分かりやすいご回答ありがとうございました。 お陰で、イメージが湧きました。

その他の回答 (1)

  • zwi
  • ベストアンサー率56% (730/1282)
回答No.1

"abcdefg"は文字列定数のポインタです。 つまり、const char *pc1 = "abcdefg"; //←ココ これはポインタを代入しているだけです。「文字列を代入」しているわけではありません。

dainithi
質問者

お礼

なるほど。 それなら合点があいますね。 参考になりました。

関連するQ&A

専門家に質問してみよう