*C言語* 〜9時限目〜 式の仕組みについて・・・
〜目次〜
式の仕組みについて
コンピュータは色々な処理を、「計算」することで行います。
そこで、
式(expression)
について学んでいきます。
C言語の「式」の多くは、
演算子(演算するもの:operator)
オペランド(演算の対象:operand)
を組み合わせで作られています。
例で、「1+2」の場合、
「+」が演算子、
「1」、「2」がオペランド
にあたります。
式の「評価」というものもあり、
「計算」をイメージしたとき、
この「計算」が、式の評価にあたります。
例で1+2が評価されると3になります。
評価されたあとの3のことを、「式の値」と呼んでいます。
式の値を出力する
以下のコードを入力することで、
式の値を出力することができます。
sample14.c
ーsample14の実行結果ー
1+2は3です。
7*7は49です。
注意するところは、C言語の掛け算では*という記号を使います。
このように、画面に出力される値は、
式が評価されたあとの値となります。
色々な計算をする
式の中で、演算の対象(オペランド)になるのは、
一定の値だけではありません。
以下のコードを入力してみてみます。
sample15.c
ーsample15の実行画面ー
変数num1の値は3です。
変数num2の値は7です。
num1+num2の値は10です。
変数num1の値に1を足すと4です。
上記のコードのように、
変数もオペランドとして使うことができます。
num1 = num1+1
については、左右が等しくないに=記号はおかしく見えます。
しかし、C言語での=記号は「等しい」という意味ではなく、
「値を代入する」という機能を持つものです。
なので、このような記述が可能になるのです。
応用して、キーボードから入力した値を変数に格納し、
計算させることもできるのです。
実際に自分でコードを入力してみてください。
いままでの内容を理解していれば、できるはずです。
余談ですが、プログラムを学んでいく上で大事になるのは、
実際にコードを入力して、動かしてみることです。
色々な演算子
以下がまとめたものです。
演算子にはオペランドを1つとるもの、2つとるものなどがあります。
単項演算子(unary operator)
と呼ぶこともあります。
インクリメント・デクリメント演算子
プログラムを作成するにあたり、よく使われる演算子である、
「++」という演算子についてです。
この演算子は次のようにして使います。
num++;
「インクリメント」とは、値を1増やす演算のことです。
num = num+1;
は、
num++;
と同じ処理になります。
一方-を2つ続けた「--」はデクリメント演算子と呼ばれ、
「デクリメント」とは、値を1減らす演算のことです。
num = num-1;
は、
num--;
と同じ処理になります。
インクリメント・デクリメントの前置と後置
インクリメントとデクリメント演算子は、
オペランドの前と後ろのどちらにでも使うことができます。
num++;
++num;
というような記述の仕方ができるということです。
後ろに置く場合を「後置インクリメント演算子」
前に置く場合を「前置インクリメント演算子」
と呼びます。
この表記の違いで実行結果が異なる場合もあります。
例で、
int a = 0;
int b = 0;
が変数としてあり、
b = a++;
後置インクリメント演算子の場合、
変数bにaの値を代入してから、aの値を1増やす
という処理を行います。
b = ++a;
前置インクリメント演算子の場合、
aの値を1増やしてから、変数bにaの値を代入する
という逆の処理が行われるため、
出力結果が異なるようになります。
前者の場合では、変数bを出力すると0が出力され、
後者の場合では、変数bを出力すると1が出力されます。
デクリメント演算子でも、同じことが言えるので、
両方の演算子を使う際には、
前置か後置かで出力結果が異なる場合があるので、
注意して使ってください。
代入演算子などについては、次の時限で扱います。
〜END〜