これまでの勉強で、演算子は必要に応じて少しずつ出てきました。
ここでは、演算子について、改めてきちんと説明します。
*オペランド [#m77529e0]
演算の対象となる値や変数を''オペランド''といいます。
オペランドが1つの演算子を''単項演算子''、2つのものを''2項演算子''、3つのものを''3項演算子''といいます。
*増分・減分演算子の前置と後置 [#a54f1eaf]
単項演算子である増分演算子 ''++'' は、オペランドの値を1増やします。
同じく単項演算子である減分演算子 ''--'' は、オペランドの値を1減らします。
増分・減分演算子は、演算子をオペランドの前に置くこと(前置)も、オペランドの後に置くこと(後置)もできますが、実は、振る舞いが異なります。
''前置''のとき、増分・減分演算子を含む式や命令文は、増分・減分演算子が適用されてから評価されます。
''後置''のとき、増分・減分演算子を含む式や命令文は、増分・減分演算子が適用される前に評価され、それから増分・減分演算子が適用されます。
次のプログラムは、増分演算子を前置と後置で使用しています(プログラム1)。
#geshi(c){{
int i = 0;
printf("%d\n", ++i);
printf("%d\n", i++);
printf("%d\n", i);
}}
最初のprintf関数は、前置の増分演算子なので、先に増分演算子が適用され、その後にprintf関数が実行されます。
次のprintf関数は、後置の増分演算子なので、先にprintf関数が実行され、その後に増分演算子が実行されます。
したがって、このプログラムを実行すると、次のようになります。
#geshi(sh){{
luna% a.out
1
1
2
}}