- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:C言語 ポインタ)
C言語ポインタのプログラムの実行結果が予想と異なる
このQ&Aのポイント
- C言語のポインタを使ったプログラムの実行結果が予想と異なる。
- プログラムの実行結果が「9 6 5」と表示されるが、予想では「6 9 5」となるはず。
- プログラムの処理の流れを順番に解説してほしい。
- みんなの回答 (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 を指すようになります。 このポインタのコピーがこの問題のキモですね。
お礼
回答ありがとうございました。 理解できましたm(__)m