演算子とは、四則演算や条件判定のための記号のことです。既に登場しましたが、代入するために書いたイコール(=)も演算子です。
演算子はたくさんあるのですが、ここでは最初に覚えておきたいものだけに絞って解説します。
代入演算子
演算子 | 説明 |
---|---|
= | 右辺を左辺に代入します。 |
代入演算子は”=”の1つのみで、a = b; と書いた場合は、bの値がaに代入されます。
実際に書いて動かしてみましょう。
#include <stdio.h>
int data1 = 100;
int data2 = 200;
int main(void)
{
data1 = data2;
printf("data1 = %d\n", data1);
return 0;
}
実行結果
data1 = 200
変数”data1″の初期値は100ですが、data2の代入によってdata1の値が200になっているのがわかると思います。
算術演算子
四則演算、除算の余りを求める演算子を算術演算子と呼びます。
演算子 | 説明 |
---|---|
+ | 加算します。(足し算のことです) |
– | 減算します。(引き算のことです) |
* | 乗算します。(掛け算のことです) |
/ | 除算します。(割り算のことです) |
% | 剰余を求めます。(割り算の余りのことです) |
++ | インクリメントします。(変数が整数型の場合は1を足します) |
— | デクリメントします。(変数が整数型の場合は1を引きます) |
実際に書いて動かしてみましょう。
#include <stdio.h>
int data1 = 5;
int data2 = 2;
int main(void)
{
int ans;
printf("data1 = %d, data2 = %d\n", data1, data2);
ans = data1 + data2;
printf("data1 + data2 = %d\n", ans);
ans = data1 - data2;
printf("data1 - data2 = %d\n", ans);
ans = data1 * data2;
printf("data1 * data2 = %d\n", ans);
ans = data1 / data2;
printf("data1 / data2 = %d\n", ans);
ans = data1 % data2;
printf("data1 %% data2 = %d\n", ans);
ans++;
printf("ans = %d\n", ans);
ans--;
printf("ans = %d\n", ans);
return 0;
}
実行結果
data1 = 5, data2 = 2
data1 + data2 = 7
data1 – data2 = 3
data1 * data2 = 10
data1 / data2 = 2
data1 % data2 = 1
ans = 2
ans = 1
比較演算子
算術演算の場合は算術結果が求められますが、比較演算の場合は真(1)か偽(0)が求められます。
演算子 | 説明 |
---|---|
== | 等しい。 |
!= | 等しくない。 |
< | より小さい。小なり。 |
> | より大きい。大なり。 |
<= | 以下。 |
>= | 以上。 |
実際に書いて動かしてみましょう。
#include <stdio.h>
int data1 = 5;
int data2 = 2;
int main(void)
{
int ans;
printf("data1 = %d, data2 = %d\n", data1, data2);
ans = data1 == data2;
printf("ans = %d\n", ans);
ans = data1 != data2;
printf("ans = %d\n", ans);
return 0;
}
実行結果
data1 = 5, data2 = 2
ans = 0
ans = 1
論理演算子
論理演算は、真(1)偽(0)を入力に演算する演算子です。通常は、比較演算と組み合わせて記述します。
演算子 | 説明 |
---|---|
! | 論理否定。(NOT回路) |
&& | 論理積。(AND回路) |
|| | 論理和。(OR回路) |
論理否定はNOT回路と同じです。真(1)なら偽(0)、偽(0)なら真(1)になります。
論理積はAND回路と同じです。右辺と左辺の両方が真(1)の場合のみ、真(1)になります。
論理和はOR回路と同じです。右辺と左辺のどちらかが真(1)の場合に、真(1)になります。
実際に書いて動かしてみましょう。
#include <stdio.h>
int data1 = 1;
int data2 = 0;
int main(void)
{
int ans;
printf("data1 = %d, data2 = %d\n", data1, data2);
ans = !(data1 == 1);
printf("ans = %d\n", ans);
ans = (data1 == 1) && (data2 == 1);
printf("ans = %d\n", ans);
ans = (data1 == 1) || (data2 == 1);
printf("ans = %d\n", ans);
return 0;
}
実行結果
data1 = 1, data2 = 0
ans = 0
ans = 0
ans = 1