変数を使った演算

今回は演算についてしましょう。
演算子とは計算のことです。
というより、私には演算と計算の違いがわかりません(笑)

基本的に、C言語で演算を行う場合、大半は次のようになります。

変数(or数値) 演算子 変数(or数値)

演算子とは、算数で言うところの、足す(+)や、引く(-)等のことです。
わかりやすい例を出すと 1+1 でしょうか。
C言語にも + という演算子はあるので、次のようなことができます。

int main(void)
{
  1+1;
  return 0;
}

コンパイルはうまくいくかもしれませんが、あまり意味がありません。
上のソースでは結果を格納していないためです。
そのため、計算結果も計算後、すぐに消えてしまいます。
そういった、計算の結果を保持するのにも変数を利用します。

変数に値を代入する場合、単純代入演算子(=)を使うので、
1+1 の結果を変数に代入する場合、次のようになります。

int main(void)
{
  int x;
  x=1+1;
  return 0;
}

これで、変数xには1+1の結果、すなわち2が代入されます。
「しかしこれでは上の演算の基本例と形が異なる。」と思うかもしれませんが、
これはしっかりと基本形を守っています。
x=(1+1) とすれば解ってもらえると思います。

上の説明には括弧を使いましたが、C言語の演算子にも、優先順位があります。
基本は普通の四則計算と同じです(足し算より掛け算を優先するなど。)
上の例の場合、単純代入演算子(=)より、加算演算子(+)が優先順位が高いため、
正しい結果が出てきます。


もし、C言語に演算子の優先順位がなければどうなるのでしょうか?
x=1+1; と書くと、まず x=1 が実行され、変数xに1が代入され、
続いて x+1 が実行され、変数xと1を加算します。
が、その結果はどこに行くのでしょうか?
どこにも行きません。変数xに1が代入されるだけの式になってしまいます。
このように、もし演算子に優先順位がなければ大変なことになってしまいます。