コンテンツにスキップ

演算子#

コンピュータは計算機と呼ばれる通り、無数の演算を行うことで複雑な処理を実現しています。

プログラム上では演算子と呼ばれる記号を用いて、演算を行います。


以下に、演算子の種類と優先順位を示します。

優先順位は、数値が大きいほど優先されます。

資料

演算子 説明 優先順位
() 括弧 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

ほとんどの場合は、四則演算と比較演算子を覚えておけば大丈夫です。


課題#