今回は演算についてしましょう。
演算子とは計算のことです。
というより、私には演算と計算の違いがわかりません(笑)
基本的に、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が代入されます。
上の説明には括弧を使いましたが、C言語の演算子にも、優先順位があります。
「しかしこれでは上の演算の基本例と形が異なる。」と思うかもしれませんが、
これはしっかりと基本形を守っています。
x=(1+1) とすれば解ってもらえると思います。
基本は普通の四則計算と同じです(足し算より掛け算を優先するなど。)
上の例の場合、単純代入演算子(=)より、加算演算子(+)が優先順位が高いため、
正しい結果が出てきます。
もし、C言語に演算子の優先順位がなければどうなるのでしょうか?
x=1+1; と書くと、まず x=1 が実行され、変数xに1が代入され、
続いて x+1 が実行され、変数xと1を加算します。
が、その結果はどこに行くのでしょうか?
どこにも行きません。変数xに1が代入されるだけの式になってしまいます。
このように、もし演算子に優先順位がなければ大変なことになってしまいます。