• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:前置き・後置きインクリメント。)

前置き・後置きインクリメントの違いを論理的に

このQ&Aのポイント
  • 前置き・後置きインクリメントの違いは、変数の値がインクリメントされるタイミングにあります。
  • 前置きインクリメントは、変数の値をインクリメントする前に式の評価が行われます。
  • 後置きインクリメントは、変数の値をインクリメントした後に式の評価が行われます。

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

  • ベストアンサー
  • bunjii
  • ベストアンサー率43% (3589/8249)
回答No.3

>前置き・後置きインクリメント。 >参考書を見て、考えましたがピンときません。 >どなたか解りやすく説明してもらいませんでしょうか? 参考書を読んでも、実際の動作を見ても分からないようではプログラマーの素質がありませんので学習を止めた方が良いと思います。 提示のインクリメント演算子(++)は変数(a)の左または右に付けることで変数(a)に1を加えた値を元の変数(a)へ代入するという動作をするように決められています。 また、変数(b)へインクリメント演算子が付いた変数の値を代入するときは次のような結果になることを規定しています。 b = a++; は「aの値をbへ代入してからaの値に1を加える」という動作になります。(b = a;a = a + 1; と同じ) b = ++a; は「aの値に1を加えてから、その結果をbへ代入する」という動作になります。(a = a + 1;b = a; と同じ) これはプログラム上の約束事なのでそのまま覚えないといけません。

takakou7979
質問者

お礼

いつもお世話になり誠に有難うございます。 プログラムの約束事として覚えます。

その他の回答 (2)

  • wormhole
  • ベストアンサー率28% (1626/5665)
回答No.2

printfで出力している文章そのまんまの意味ですよ? >b = a++; > >printf("代入後にインクリメントしたのでbの値は%dです。\n", b); 変数aの値を変数bに代入した後に変数aの値を+1 b=a; a += 1; >b = ++a; > >printf("代入前にインクリメントしたのでbの値は%dです。\n", b); 変数aの値を変数bに代入する前に変数aの値を+1 (先に変数aの値を+1し変数aの値を変数bに代入) a += 1; b = a;

takakou7979
質問者

お礼

ご回答誠に有難うございます。

  • maiko0333
  • ベストアンサー率19% (839/4401)
回答No.1

論理的?そのまんまですけど。 b=a++はb=a;a++; b=++aはa++;b=a; ということですね。

takakou7979
質問者

お礼

ご回答誠に有難うございます。

関連するQ&A