Lesson5  演算子 パート2
    
 〜もっとC言語らしいプログラムを書いてみよう〜
演算子の種類 一般形 同じ意味の式 式の値
前置増分 ++E E=E+1 増分後の値
後置増分 E++ E=E+1 増分前の値
前置減分 −−E E=E-1 減分後の値
後置減分 E−− E=E-1 減分前の値
i = 2
j = ( i ++) * 3;
  式の値とオペランドの値とは、違うものです。式の値とは、この式が別の演算子のオペランドになっているとき、どのような値で演算が行われているか、ということです。
 例えば、
Step1 増分・減分演算子
 C言語には、1加える、1減らすための専用の演算子が用意されています。これらは、データの数を数えるときなどに使います。
 という式があったとき( i 、j  あらかじめ宣言されたint方の変数とします) (i++)を行うことで、変数と i の値は3になりますが、掛け算のオペランドとしての(i++)の値は、増分前の2であり、
が計算されます。この場合、演算後のi , j の値は、
 となります。一方、
Sample

/*****************************************************

合計と平均を求める

*****************************************************/

#include <stdio.h>
main()
{
int kokugo =73; /*国語*/
int suugaku =59; /*数学*/
int eigo =92; /*英語*/
int goukei =0; /*合計点*/
double heikin; /*平均点*/
int kamoku =0; /*科目数*/

/*合計点と平均点の算出*/

goukei +=kokugo;
kamoku ++;
goukei +=suugaku;
kamoku ++;
goukei +=eigo;
kamoku ++;
heikin = (double)goukei / kamoku;

/*画面に表示*/

printf("国語:%3d点\n数学:%3d点\n英語:%3d点\n",kokugo,suugaku,eigo);
printf("\n");
printf("合計:%3d点\n平均:%5.1f点\n",goukei,heikin);
}
  2*3
 i = 3
 j = 6
i = 2;
j = (++i)*3;
の場合には、(++i)の値は、像文語の値が使われ、
  3*3
が計算されます。この場合、演算後の i , j の値は、
i = 3
j = 9 
となります。
Step2 複合代入演算子
 C言語には、代入を演算と組み合わせた演算子が用意されています。
複合演算子 演算の種類 一般形 同じ意味の式
  + = 足し算の結果を代入 E1+=E2 E1=E1+E2
  − = 引き算の結果を代入 E1-=E2 E1=E1-E2
  * = 掛け算した結果を代入 E1*=E2 E1=E1*E2
  /  割り算した結果を代入 E1/=E2 E1=E1/E2
  %  = 割り算の余りを代入 E1%=E2 E1=E1%E2
E1,E2:オペランド