演算子は、プログラムにおいてデータの操作や評価を行うために使用される特別な記号やキーワードです。C言語には多くの種類の演算子があり、それぞれ特定の機能を持っています。ここでは、C言語の主要な演算子について詳しく説明します。
算術演算子
算術演算子は、数値の計算を行うために使用されます。
主な算術演算子
+: 加算-: 減算*: 乗算/: 除算%: 剰余
#include <stdio.h>
int main() {
int a = 10, b = 3;
printf("加算: %d + %d = %d\n", a, b, a + b);
printf("減算: %d - %d = %d\n", a, b, a - b);
printf("乗算: %d * %d = %d\n", a, b, a * b);
printf("除算: %d / %d = %d\n", a, b, a / b);
printf("剰余: %d %% %d = %d\n", a, b, a % b);
return 0;
}
比較演算子
比較演算子は、2つの値を比較して、結果として真(1)または偽(0)を返します。
主な比較演算子
==: 等しい!=: 等しくない>: 大きい<: 小さい>=: 大きいまたは等しい<=: 小さいまたは等しい
#include <stdio.h>
int main() {
int a = 10, b = 3;
printf("等しい: %d == %d は %d\n", a, b, a == b);
printf("等しくない: %d != %d は %d\n", a, b, a != b);
printf("大きい: %d > %d は %d\n", a, b, a > b);
printf("小さい: %d < %d は %d\n", a, b, a < b); printf("大きいまたは等しい: %d >= %d は %d\n", a, b, a >= b);
printf("小さいまたは等しい: %d <= %d は %d\n", a, b, a <= b);
return 0;
}
論理演算子
論理演算子は、ブール値を操作するために使用されます。
主な論理演算子
&&: 論理積(AND)||: 論理和(OR)!: 論理否定(NOT)
#include <stdio.h>
int main() {
int a = 1, b = 0;
printf("論理積: %d && %d は %d\n", a, b, a && b);
printf("論理和: %d || %d は %d\n", a, b, a || b);
printf("論理否定: !%d は %d\n", a, !a);
return 0;
}
ビット演算子
ビット演算子は、ビットレベルでの操作を行うために使用されます。
主なビット演算子
&: ビットAND|: ビットOR^: ビットXOR~: ビットNOT<<: 左シフト>>: 右シフト
#include <stdio.h>
int main() {
int a = 5, b = 3;
printf("ビットAND: %d & %d = %d\n", a, b, a & b);
printf("ビットOR: %d | %d = %d\n", a, b, a | b);
printf("ビットXOR: %d ^ %d = %d\n", a, b, a ^ b);
printf("ビットNOT: ~%d = %d\n", a, ~a);
printf("左シフト: %d << 1 = %d\n", a, a << 1); printf("右シフト: %d >> 1 = %d\n", a, a >> 1);
return 0;
}
代入演算子
代入演算子は、変数に値を代入するために使用されます。
主な代入演算子
=: 代入+=: 加算代入-=: 減算代入*=: 乗算代入/=: 除算代入%=: 剰余代入
#include <stdio.h>
int main() {
int a = 10;
printf("初期値: %d\n", a);
a += 5;
printf("加算代入: %d\n", a);
a -= 3;
printf("減算代入: %d\n", a);
a *= 2;
printf("乗算代入: %d\n", a);
a /= 4;
printf("除算代入: %d\n", a);
a %= 3;
printf("剰余代入: %d\n", a);
return 0;
}
条件演算子
条件演算子(?:)は、条件式の評価に基づいて異なる値を返すために使用されます。
#include <stdio.h>
int main() {
int a = 10, b = 20;
int max = (a > b) ? a : b;
printf("最大値: %d\n", max);
return 0;
}
その他の演算子
その他にも、C言語には特別な用途を持つ演算子がいくつかあります。
インクリメント・デクリメント演算子
インクリメント(++)とデクリメント(--)演算子は、変数の値を1ずつ増減させます。
#include <stdio.h>
int main() {
int a = 10;
printf("初期値: %d\n", a);
a++;
printf("インクリメント後: %d\n", a);
a--;
printf("デクリメント後: %d\n", a);
return 0;
}
総合例
以下に、ここまで学んだ演算子の知識を統合したプログラムを示します。このプログラムでは、算術演算子、比較演算子、論理演算子、ビット演算子、代入演算子、条件演算子、インクリメント・デクリメント演算子を使用します。
#include <stdio.h>
int main() {
// 算術演算子
int a = 10, b = 3;
printf("加算: %d + %d = %d\n", a, b, a + b);
printf("減算: %d - %d = %d\n", a, b, a - b);
printf("乗算: %d * %d = %d\n", a, b, a * b);
printf("除算: %d / %d = %d\n", a, b, a / b);
printf("剰余: %d %% %d = %d\n", a, b, a % b);
// 比較演算子
printf("等しい: %d == %d は %d\n", a, b, a == b);
printf("等しくない: %d != %d は %d\n", a, b, a != b);
printf("大きい: %d > %d は %d\n", a, b, a > b);
printf("小さい: %d < %d は %d\n", a, b, a < b); printf("大きいまたは等しい: %d >= %d は %d\n", a, b, a >= b);
printf("小さいまたは等しい: %d <= %d は %d\n", a, b, a <= b);
// 論理演算子
int x = 1, y = 0;
printf("論理積: %d && %d は %d\n", x, y, x && y);
printf("論理和: %d || %d は %d\n", x, y, x || y);
printf("論理否定: !%d は %d\n", x, !x);
// ビット演算子
int m = 5, n = 3;
printf("ビットAND: %d & %d = %d\n", m, n, m & n);
printf("ビットOR: %d | %d = %d\n", m, n, m | n);
printf("ビットXOR: %d ^ %d = %d\n", m, n, m ^ n);
printf("ビットNOT: ~%d = %d\n", m, ~m);
printf("左シフト: %d << 1 = %d\n", m, m << 1); printf("右シフト: %d >> 1 = %d\n", m, m >> 1);
// 代入演算子
int p = 10;
printf("初期値: %d\n", p);
p += 5;
printf("加算代入: %d\n", p);
p -= 3;
printf("減算代入: %d\n", p);
p *= 2;
printf("乗算代入: %d\n", p);
p /= 4;
printf("除算代入: %d\n", p);
p %= 3;
printf("剰余代入: %d\n", p);
// 条件演算子
int q = 10, r = 20;
int max = (q > r) ? q : r;
printf("最大値: %d\n", max);
// インクリメント・デクリメント演算子
int s = 10;
printf("初期値: %d\n", s);
s++;
printf("インクリメント後: %d\n", s);
s--;
printf("デクリメント後: %d\n", s);
return 0;
}
結論
ここでは、C言語のさまざまな演算子について学びました。演算子はプログラムにおける基本的な操作を実行するための重要なツールです。これらの演算子を理解し、適切に使用することで、効率的で読みやすいコードを作成することができます。
