++, -- 演算子
変数への 1 ずつの加減算については以下のように使える演算子もあります。(インクリメント(加算)、デクリメント(減算)演算子と呼びます。)
演算子 | 利用例(aを20とする) | 同じ意味の記述 |
---|---|---|
++ | a++; (aは21となる) | a=a+1; や a+=1; |
-- | a--; (aは19となる) | a=a-1; や a-=1; |
それ以外にインクリメント、デクリメント演算子は ++a 、--a のように使うこともできます。違いは演算処理のなかで使われたときです。++a は演算に先立って加算され、a++ は演算の後で加算されます。慣れないうちは a++; のように、一行だけの記述で、つまり a=a+1; の代わりに使うのがよいでしょう。
「演算に先立って」「演算の後で」ということの違いがはっきりする例を以下に示しておきます。a++ と ++a で結果が 120 と 126 と違いがでていますね。興味のある人は何が起きているか考えてみると良いでしょう。
プログラム例
main(){ int a,b; a = 20; b = 6 * a++; printf(" a++ 実行後 a=%d, b=%d\n", a,b); a = 20; b = 6 * ++a; printf(" ++a 実行後 a=%d, b=%d\n", a,b); }
実行結果
a++ 実行後 a=21, b=120 ++a 実行後 a=21, b=126
6 * a++ は 6 と掛け合わされたあとで加算され、6 * ++a は 6 と掛け合わされる前に加算されています。