• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:C言語 ポインタ)

C言語ポインタのプログラムの実行結果が予想と異なる

このQ&Aのポイント
  • C言語のポインタを使ったプログラムの実行結果が予想と異なる。
  • プログラムの実行結果が「9 6 5」と表示されるが、予想では「6 9 5」となるはず。
  • プログラムの処理の流れを順番に解説してほしい。

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

  • ベストアンサー
  • kawais070
  • ベストアンサー率52% (2242/4283)
回答No.1

u-=*q;  ⇒ u = u - s と等価 u は 5 になる *q=*p;  ⇒ s = t と等価 s は 3 になる *p=u+1;  ⇒ t = u + 1 と等価 t は 6 になる h=p;   ⇒ ポインタのみコピー(a) p=q;   ⇒ ポインタのみコピー(b) q=h;   ⇒ ポインタのみコピー(c) *p+=*q;  ⇒ s = s + t と等価 s は 9 になる (a), (b), (c) のポインタのコピーを繰り返すことで、 *q が t を指し、*p が s を指すようになります。 このポインタのコピーがこの問題のキモですね。

noname#232884
質問者

お礼

回答ありがとうございました。 理解できましたm(__)m

関連するQ&A