• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:c++のプログラミングについてです。)

C++プログラミングの考え方がわからない?

このQ&Aのポイント
  • C++プログラミングの考え方がわからないので予測結果を教えてください。
  • C++のプログラムの結果を予測したいですが、考え方がわかりません。教えてください。
  • C++プログラミングの考え方がわからない場合の結果はどうなるのでしょうか?教えてください。

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

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

これは恐らくポインターの概念を理解するためのサンプルだと思われます。 a、bはint型、pはint型のポインターですね。 ポインターというのは、”その変数が格納されている場所”を指し示すものと考えてください。 最初の p = &a で、ポインター p に 変数 a の格納されている場所を代入します。& は 変数 a ポインターを表すものです。 次は単に表示しているだけですが、 変数 a の内容、 変数 b の内容、と ポインタ p が指示している変数の内容(その前でaのポインタを代入しているので、変数 a の内容)が表示されます。 次に、変数 a, b にそれぞえ違う値を入れています。 同じ様に、変数 a, b の内容が表示されますが、変数 p は何もしていないのに、ちゃんと変数aの内容が表示されるはずです。(即ち 200) 最後は、ポインタ p に今度は変数 bのポインタを代入したので、今度は、変数 b の内容が表示されるはずです。 この ポインタ p に何を代入したらどうなるか?ポインターとはどんなものか?が分かればOKだと思います。 ご参考に。

pipi-8
質問者

お礼

参考になりました。

すると、全ての回答が全文表示されます。

その他の回答 (1)

  • LOHA
  • ベストアンサー率52% (203/388)
回答No.1

C++の問題というよりCのポインタの問題ですね。 >p = &a; >b = *p; まず、pに変数aのアドレスが入ります。 すると、*pで変数aのアドレスに格納された値を参照することになるので、結局aの値を得るということになります。 その値をbに代入しているので、bの値はaの値と同じになります。 なので出力結果はa, b, *pが全て同じになります。 >a = 200; >b = 300; 次に、aに200が代入されます。 pはaのアドレスを指し示していたわけですから、*pは200になります。 bには単に300を代入しているだけです。 >p = &b; 最後に、pにbのアドレスを代入しています。 ということは*pはbの値と同じ、つまり300になります。 以上が一連の流れとなりますが、このプログラムでやっていることはごく基本的なことなので、本を買うなりして、Cのポインタに関して、基本から勉強するのが良いかと思います。 もし勉強中ということでしたら、頑張ってください!

pipi-8
質問者

お礼

ありがとうございました。頑張ります!

すると、全ての回答が全文表示されます。

関連するQ&A