演算子#
コンピュータは計算機
と呼ばれる通り、無数の演算を行うことで複雑な処理を実現しています。
プログラム上では演算子と呼ばれる記号を用いて、演算を行います。
以下に、演算子の種類と優先順位を示します。
優先順位は、数値が大きいほど優先されます。
演算子 | 説明 | 優先順位 |
---|---|---|
() |
括弧 | 1 |
[] |
配列 | 1 |
. |
メンバ | 1 |
-> |
ポインタ | 1 |
++ |
後置インクリメント | 1 |
-- |
後置デクリメント | 1 |
(type)[...] |
複合リテラル | 1 |
! |
論理否定 | 2 |
~ |
ビット否定 | 2 |
++ |
前置インクリメント | 2 |
-- |
前置デクリメント | 2 |
+ |
符号 | 2 |
- |
符号反転 | 2 |
* |
ポインタの間接参照 | 2 |
& |
メモリアドレス | 2 |
sizeof |
変数のサイズ | 2 |
_Alignof |
型のアライメント | 2 |
(type) |
キャスト | 3 |
* |
乗算 | 4 |
/ |
除算 | 4 |
% |
剰余 | 4 |
+ |
加算 | 5 |
- |
減算 | 5 |
<< |
左シフト | 6 |
>> |
右シフト | 6 |
< |
左の方が小さい | 7 |
<= |
左の方が右以下 | 7 |
> |
左の方が大きい | 7 |
>= |
左の方が右以上 | 7 |
== |
左と右が等しい | 8 |
!= |
左と右が等しくない | 8 |
& |
ビット積 | 9 |
^ |
排他的論理和 | 10 |
| |
ビット和 | 11 |
&& |
論理積 | 12 |
|| |
論理和 | 13 |
?: |
条件演算子 | 14 |
= |
代入 | 15 |
+= |
加算代入 | 15 |
-= |
減算代入 | 15 |
*= |
乗算代入 | 15 |
/= |
除算代入 | 15 |
%= |
剰余代入 | 15 |
<<= |
左シフト代入 | 15 |
>>= |
右シフト代入 | 15 |
&= |
ビット積代入 | 15 |
^= |
排他的論理和代入 | 15 |
|= |
ビット和代入 | 15 |
, |
カンマ | 16 |
実際に簡単な演算を行いましょう。
#include <cstdio>
int main()
{
int a = 1;
int b = 2;
int c = a + b;
printf("c = %d\n", c);
return 0;
}
出力結果は以下のようになります。
c = 3
演算代入を行うと、以下のようになります。
#include <cstdio>
int main()
{
int a = 1;
int b = 2;
a += b;
printf("a = %d\n", a);
return 0;
}
この処理におけるa += b
は、a = a + b
と同じ意味になります。
出力結果は以下のようになります。
a = 3
ほとんどの場合は、四則演算と比較演算子を覚えておけば大丈夫です。