Previous: 単体での使用
Up: インクリメント・デクリメント
Previous Page: 単体での使用
Next Page: 式の縮約表現
更に、インクリメント・デクリメント演算子は式の中にも使うことができるが、 問題はどの時点で実際にインクリメント(あるいはデクリメント)を実行するかという 問題が発生する。c 言語では、これを前置演算と後置演算という区別を設けることに よって解決している。
例2 a = 1; a++; b = a;というプログラムは、前置演算を用いて、次の様に簡潔に書ける。
例3 a = 1; b = ++a;つまり、インクリメント演算子を前に置く(前置)ことによって、先に a の値が 1つ増やされてから、b への代入がなされる。
逆に、次の様なプログラムは、
例4 a = 1; b = a; a++;
例5 a = 1; b = a++;のように後置することによって簡潔に書ける。
例3と例5を見比べると非常に似通っているが、例3では、a がインクリメント されてから b に代入されるので、b の値は2になるのに対し、例4では、 代入されてからインクリメントが行われるので b の値は1になる。 即ち、例3は例2を簡潔にしたものであること、例4は例3を簡潔にしたもので あることをしっかりと認識しておくことが重要である。
その他の例 例6 x = --i + --j; 例7 x = (++i)*(++j); 例8 x++ = y++;