- ベストアンサー
前置き・後置きインクリメントの違いを論理的に
- 前置き・後置きインクリメントの違いは、変数の値がインクリメントされるタイミングにあります。
- 前置きインクリメントは、変数の値をインクリメントする前に式の評価が行われます。
- 後置きインクリメントは、変数の値をインクリメントした後に式の評価が行われます。
- みんなの回答 (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; と同じ) これはプログラム上の約束事なのでそのまま覚えないといけません。
その他の回答 (2)
- wormhole
- ベストアンサー率28% (1626/5665)
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;
お礼
ご回答誠に有難うございます。
- maiko0333
- ベストアンサー率19% (839/4401)
論理的?そのまんまですけど。 b=a++はb=a;a++; b=++aはa++;b=a; ということですね。
お礼
ご回答誠に有難うございます。
お礼
いつもお世話になり誠に有難うございます。 プログラムの約束事として覚えます。