6.演算子 |
|
演算子はオペレータと呼ばれたりします。
たまに本などに出てくるので、頭のスミにおいておきましょう。
|
演算子とは |
計算するために使う記号で、命令の一種です。
例えば、 X=Y+Z; は、
+の左に右を足して、=の右(Y+Zが先に演算されるのでY+Z)を左に入れる。となります。
ちょっとややこしいですが、ここまで意識する必要はありません。
算数で習うように優先順位があります。
1+2*3は算数で7ですね。プログラムでも答えは7です。*が先に処理されます。
|
優先順位の高い演算子順に書かれた表です。 |
演算子
| 解説
| 例
| 方向 |
| ()
| ()で囲まれている場所を先に演算せよ
| (x+y)
| |
| ++
| 左の変数に1を足せ x++;は、x=x+1;と同じ意味
| x++
| 左 |
| --
| 左の変数に1を引け x--;は、x=x-1;と同じ意味
| y--
| 左 |
| &
| 右の変数のアドレス
| &x
| 右 |
| *
| 右のポインタ変数の指すアドレス内にある内容
| *x
| 右 |
| 計算式
|
| *
| 掛け算
| x * y
| 左 |
| /
| 割り算
| x / y
| 左 |
| %
| 左から右を割ったときの余り
| x % y
| 左 |
| +
| 足し算
| x + y
| 左 |
| -
| 引き算
| x - y
| 左 |
| 比較演算子 真実であれば「1」になる
|
| <
| 左より大きい
| x < y
| 左 |
| <=
| 左と同じ、もしくは大きい
| x <= y
| 左 |
| >
| 左より小さい
| x > y
| 左 |
| >=
| 左と同じ、もしくは小さい
| x >= y
| 左 |
| ==
| 等しい
| x == y
| 左 |
| !=
| 等しくない
| x != y
| 左 |
| &
| ビット毎のAND 低レベルビット演算
| x&y
| 左 |
| &&
| 左が真実で右が真実。左右両方が真実
| x && y
| 左 |
| ||
| 左か右が真実。どちらかが真実
| x || y
| 左 |
| 代入演算子 ( 「=」は、数学の「=」とは違います。数学の「=」は「==」のほうが近いでしょう )
|
| =
| 右の数字(もしくは変数)を左に代入
| x = y
| 右 |
+=
-=
*=
/=
%=
| 知らなくてもよいことではありますが、他人のソースに出てくるときがよくあります。
ソースを読むためにも、頭のすみにおいておきましょう。
x=x+1; と x+=1; は同じです。
右の数字に左の数字を足して、左に代入する
| x += y
x -= y
x *= y
x /= y
x %= y
| 右 |
|
演算子の注意点 |
プログラムの「=」は、数学の「=」とは別物です。
X=X+1;
こんな不自然な式が、プログラム中に出てきます。
XとX+1はイコールではありませんよね。
=は演算子というより命令と考えたほうが理解しやすいでしょう。
イメージ的には X←X+1; という感じです。

注意
「=」の右と左は、基本的に同じ型をお勧めします。
思いがけないバグになる可能性大です。
|
算数で比較に使う=にも気をつけましょう。
算数の真偽に使う「=」は、プログラムでは「==」と書きます。
代入演算子「=」と区別するためです。
慣れてきてもたまに間違えます。
その上、間違えてもエラーにならないコンパイラが多いので、少し見つけにくいバグになります。
|
変数と演算子と文章 |
ひとつの文章に、変数の宣言と同時に演算子が使えます。
[ 例 ]
int hensu=10; //変数
変数の宣言と同時に初期値とコメントを入れると、見やすい、変更しやすいプログラムになります。
|