【2026年7月最新】C言語の演算子完全ガイド|算術・比較・論理・ビット・優先順位を徹底解説

【2026年7月最新】C言語の演算子完全ガイド|算術・比較・論理・ビット・優先順位を徹底解説

++xx++は何が違うの?」「%って何の演算子?」「演算子の優先順位が分からなくてバグが起きた」——C言語を学ぶ際に多くの人がつまずくのが演算子の理解です。

C言語には算術・比較・論理・代入・ビット・sizeof・キャストなど多種多様な演算子があり、それぞれの使い方と優先順位を正しく理解しないと予期しないバグが発生します。特に、インクリメント演算子の前置(++x)と後置(x++)の違いは、多くの初学者が実際にコードを動かして初めて理解できる重要ポイントです。

この記事ではC言語の全演算子を体系的に整理し、それぞれの動作・使い方・よくあるミスをサンプルコード付きで解説します。さらにClaude Codeを使ってC言語のコード作成を支援する方法も紹介します。

代表菅澤 代表菅澤
C言語の演算子は数が多く覚えるのが大変ですが、実務でよく使うのは算術・比較・論理・代入の4系統です。まずこの4つをしっかり理解して、ビット演算子などは必要になったら調べる、という学習アプローチが効率的です。
AI鬼管理山崎 AI鬼管理山崎
この記事では「なぜそう動くのか」という仕組みも一緒に説明します。丸暗記より原理の理解を優先した方が、実際のコーディングで応用が効きます。サンプルコードを手元で動かしながら読むと理解が深まります。
✔️C言語の演算子の全体分類と各カテゴリの役割が分かる
✔️算術演算子の余り(%)やインクリメント(++)の動作を完全理解できる
✔️前置++と後置++の違いが具体的なコードで理解できる
✔️比較・論理・代入演算子の使い方と落とし穴が分かる
✔️ビット演算子の仕組みと実用的な使いどころが分かる
✔️演算子の優先順位一覧とカッコを使った安全なコーディング手法が分かる
✔️Claude CodeでC言語の学習とコード生成を加速させる方法が分かる
Claude Code 完全解説セミナー|経営者・会社役員専用 1on1 60分 無料Claude Codeを経営に活かしたい方へ — AI鬼管理
📌 この記事の結論
【2026年7月最新】C言語の演算子完全ガイド|算術・比較・論理・ビット・優先順位を徹底解説
C言語の演算子を完全解説。算術・比較・論理・代入・インクリメント・ビット演算子の使い方と優先順位一覧、実践的なサンプルコード、Claude Codeでのコード支援活用方法まで体系的に解説します。

01 C言語の演算子とは――基礎と分類の全体像 プログラムで「計算・比較・判断」を担う記号の仕組みを理解する

演算子(operator)とは、プログラム中で計算・比較・論理判断・ビット操作などを行うための記号です。数学で「+」や「−」を使って計算するように、C言語でも様々な演算子を使ってプログラムの処理を記述します。

📚 用語解説

演算子(Operator):プログラムで特定の計算・処理を行うための記号・キーワードのこと。演算子が処理する対象を「オペランド(operand)」といいます。例えば「a + b」では「+」が演算子で、「a」と「b」がオペランドです。C言語では数値計算から論理判断・ビット操作まで50種類以上の演算子があります。

C言語の演算子は以下のカテゴリに分類されます。

カテゴリ主な演算子役割
算術演算子+, -, *, /, %, ++, --四則演算・余り・インクリメント/デクリメント
比較演算子==, !=, <, >, <=, >=2つの値を比較して真偽値を返す
論理演算子&&, ||, !AND・OR・NOT論理演算
代入演算子=, +=, -=, *=, /=など変数への代入・複合代入
ビット演算子&, |, ^, ~, <<, >>ビット(2進数)単位の演算
条件演算子? :条件によって値を選択(三項演算子)
sizeof演算子sizeofデータ型やオブジェクトのバイト数を得る
キャスト演算子(型名)データ型を強制変換する
ポインタ演算子*, &, ->アドレス・ポインタ操作
💡 まず覚えるべき演算子の優先度

全演算子を一度に覚えようとするのは非効率です。まず①算術演算子(+,-,*,/,%)②比較演算子(==,!=,<,>など)③論理演算子(&&,||,!)④代入演算子(=,+=など)の4系統を習得しましょう。これだけで基本的なCプログラムの大部分が書けます。ビット演算子やポインタは実際に必要になったタイミングで学ぶので十分です。

02 算術演算子――四則演算と余り・インクリメント 最も使用頻度の高い演算子グループを完全マスターする

算術演算子は数値の計算に使う演算子です。日常の計算と同様の「+」「-」「*」「/」に加えて、C言語特有の「%」(余り)・「++」(インクリメント)・「--」(デクリメント)があります。

演算子意味結果
+加算10 + 313
-減算10 - 37
*乗算10 * 330
/除算10 / 33(整数除算)
%余り(剰余)10 % 31
++インクリメント(+1)++x または x++xが1増える
--デクリメント(-1)--x または x--xが1減る

2-1. 整数除算の落とし穴

C言語で整数同士を「/」で割ると、結果も整数になります(小数点以下は切り捨て)。例えば10 / 3の結果は3(3.333...ではなく)です。小数点以下も含めた結果が欲しい場合は、どちらかの値を浮動小数点数(floatまたはdouble)にキャストする必要があります。

#include <stdio.h> int main() { /* 整数除算:小数点以下は切り捨て */ int a = 10, b = 3; printf("10 / 3 = %d\n", a / b); /* 出力: 3 */ /* 浮動小数点に変換して正確な値を得る */ printf("10.0 / 3 = %f\n", (double)a / b); /* 出力: 3.333333 */ /* 余り(剰余)演算 */ printf("10 %% 3 = %d\n", a % b); /* 出力: 1 */ return 0; }
⚠️ ゼロ除算に注意

「0」で割る(除算・剰余どちらも)とプログラムがクラッシュします(未定義動作)。除算を行う前に必ず分母が0でないことを確認する習慣をつけましょう。「if (b != 0) { result = a / b; }」のように条件チェックを入れるのが安全なコーディングの基本です。

2-2. %(剰余演算子)の使いどころ

余りを求める%演算子は、「偶数・奇数の判定」「一定間隔の処理」「循環インデックス」などでよく使われます。

/* 偶数・奇数の判定 */ if (n % 2 == 0) { printf("%d は偶数\n", n); } else { printf("%d は奇数\n", n); } /* 100件ごとに処理を実行(ループ中) */ if (i % 100 == 0) { printf("%d件処理しました\n", i); } /* 配列のインデックスを循環させる(0〜9を繰り返す) */ int index = counter % 10;

2-3. インクリメント(++)とデクリメント(--)の前置・後置の違い

インクリメント演算子には前置(++x後置(x++の2種類があります。どちらも「変数の値を1増やす」ことに変わりはありませんが、「式の評価結果」が異なります

記法動作xが5のとき「y = ++x」または「y = x++」の結果
前置: ++xまずxを+1してから、式の値として新しいxを使うx=6、y=6(先に増やしてからyに代入)
後置: x++まず現在のxを式の値として使い、その後xを+1するx=6、y=5(yには元の値5が代入され、後でxが6になる)
#include <stdio.h> int main() { int x = 5, y; /* 前置インクリメント */ x = 5; y = ++x; /* x=6, y=6 */ printf("前置: x=%d, y=%d\n", x, y); /* 後置インクリメント */ x = 5; y = x++; /* x=6, y=5 */ printf("後置: x=%d, y=%d\n", x, y); return 0; }

📚 用語解説

インクリメント(Increment):変数の値を1増やす操作のこと。C言語では++演算子で表します。前置(++x)は「先に+1してから使う」、後置(x++)は「使ってから+1する」という違いがあります。デクリメント(--)は逆に1減らす操作です。forループのカウンタ変数でよく使われます(i++やi--)。

💡 単独で使うなら前置・後置どちらでも同じ

「i++;」や「++i;」のように単独でインクリメントだけを行う場合(式の評価結果を使わない場合)は、前置でも後置でも結果は同じです。混乱を避けるために、「式の一部として使うときだけ前置・後置の違いを意識する」というシンプルなルールで覚えましょう。

代表菅澤 代表菅澤
「++xとx++の違い」はC言語の面接でよく聞かれる問題でもあります。単独で使うなら同じですが、代入式の中に埋め込んだとき初めて違いが出る。この「単独なら同じ、組み込んだら違う」という理解が重要です。

03 比較演算子・論理演算子・短絡評価 条件分岐の核心となる演算子を完全理解する

比較演算子と論理演算子は、C言語のif文・while文・for文などの条件式で使われる演算子です。これらを正しく使えないとプログラムの条件分岐が正しく動きません。

3-1. 比較演算子――6種類の比較方法

演算子意味a=5, b=3 のとき結果
==等しいa == b偽(0)
!=等しくないa != b真(1)
<より小さいa < b偽(0)
>より大きいa > b真(1)
<=以下a <= 5真(1)
>=以上a >= 3真(1)
⚠️ 最重要:「=」と「==」を混同しない

代入演算子「=」と等値比較演算子「==」の混同は、C言語初心者が最もよくやるバグの原因です。「if (a = 5)」と書くとaに5が代入されて常に真になってしまいます。比較したいときは必ず「if (a == 5)」と書きましょう。特に定数と変数の比較では「if (5 == a)」のように定数を左に書く「ヨーダ記法」を使うと、万が一「=」にしても構文エラーで気づけます。

3-2. 論理演算子――AND・OR・NOT

演算子意味trueになる条件
&&論理AND(かつ)a > 0 && a < 10両方が真のとき
||論理OR(または)a < 0 || a > 100どちらかが真のとき
!論理NOT(否定)!(a == 5)aが5でないとき
/* 範囲チェック(0〜100の範囲内か) */ if (score >= 0 && score <= 100) { printf("有効なスコアです\n"); } /* 特定値の除外チェック */ if (status == ERROR_A || status == ERROR_B || status == ERROR_C) { printf("エラーが発生しました\n"); } /* 条件の否定 */ if (!isReady) { printf("まだ準備ができていません\n"); }

3-3. 短絡評価(Short-circuit Evaluation)

C言語の&&||には短絡評価(ショートサーキット評価)という重要な仕組みがあります。&&では左の式が偽なら右の式は評価されません。||では左の式が真なら右の式は評価されません。

📚 用語解説

短絡評価(Short-circuit Evaluation):論理演算子(&&や||)で左側の式だけで結果が確定する場合、右側の式を評価しない仕組み。「&&」は左が偽なら全体が偽で確定するため右を見ない。「||」は左が真なら全体が真で確定するため右を見ない。これによりポインタのNULLチェックを安全に書けるなどの実用的なメリットがあります。

/* 短絡評価の活用:NULLチェックを先に行う */ if (ptr != NULL && *ptr > 0) { /* ptrがNULLなら右の「*ptr > 0」は評価されない */ /* NULLポインタの参照によるクラッシュを防げる */ printf("正の値: %d\n", *ptr); }
AI鬼管理山崎 AI鬼管理山崎
短絡評価はバグを防ぐための重要な仕組みです。NULLポインタのチェックをifの左に書けば、右側でNULLを参照してクラッシュするという古典的なバグを防げます。「左で安全チェック、右で本処理」という書き方を習慣にしましょう。
Claude Code 完全解説セミナー|経営者・会社役員専用 1on1 60分 無料Claude Codeを経営に活かしたい方へ — AI鬼管理

04 代入演算子・複合代入演算子 変数への代入をシンプルに書くための演算子を完全解説

代入演算子の基本は=ですが、C言語には算術演算と代入を組み合わせた複合代入演算子があります。これを使うと「変数の値を更新する」コードが短く書けます。

演算子意味等価な表現
=代入a = 5aに5を代入
+=加算代入a += 3a = a + 3
-=減算代入a -= 3a = a - 3
*=乗算代入a *= 3a = a * 3
/=除算代入a /= 3a = a / 3
%=剰余代入a %= 3a = a % 3
&=ビットAND代入a &= 0xFFa = a & 0xFF
|=ビットOR代入a |= 0x01a = a | 0x01
<<=左シフト代入a <<= 2a = a << 2
>>=右シフト代入a >>= 2a = a >> 2
/* 複合代入演算子の使用例 */ int total = 0; /* ループで合計を累積する(+=が便利) */ for (int i = 1; i <= 100; i++) { total += i; /* total = total + i と同じ */ } printf("1〜100の合計: %d\n", total); /* 5050 */ /* フラグビットを設定する(|= が便利) */ unsigned char flags = 0x00; flags |= 0x01; /* bit0をセット */ flags |= 0x04; /* bit2をセット */
💡 複合代入演算子を使うメリット

「total = total + i」より「total += i」の方が短く読みやすいだけでなく、変数名のタイプミスによるバグも防げます。長い変数名(例:accumulated_sales_amount)の場合、複合代入演算子を使うことで同じ変数名を2回書くミスをなくせます。

05 ビット演算子・sizeof・キャスト演算子 組み込み開発・低レベル処理で欠かせない演算子群を解説

ビット演算子はデータをビット(2進数の1桁)単位で操作する演算子です。組み込み開発・OSプログラミング・フラグ管理など低レベルな処理でよく使われます。

📚 用語解説

ビット(bit):コンピュータが扱うデータの最小単位。0または1の値しか持ちません。8ビット=1バイト。C言語のビット演算子は、整数型変数の各ビットに直接アクセスして操作できます。マイコンやハードウェア制御(レジスタ操作)では必須の知識です。

演算子名称例(a=0b1010, b=0b1100)結果(2進数)10進数
&ビットANDa & b0b10008
|ビットORa | b0b111014
^ビットXORa ^ b0b01106
~ビット反転~a0b...0101(符号付きで変化)(型依存)
<<左シフトa << 10b1010020(×2)
>>右シフトa >> 10b01015(÷2)

5-1. ビット演算子の実用的な使い方

/* フラグ管理の例(ビット演算子の典型用途) */ #define FLAG_READ 0x01 /* 0b00000001 */ #define FLAG_WRITE 0x02 /* 0b00000010 */ #define FLAG_EXECUTE 0x04 /* 0b00000100 */ unsigned char permission = 0; /* フラグをセット(|=で特定ビットを1にする) */ permission |= FLAG_READ | FLAG_WRITE; /* 0b00000011 */ /* フラグをクリア(&= ~で特定ビットを0にする) */ permission &= ~FLAG_WRITE; /* 0b00000001 */ /* フラグの確認(&で特定ビットを検査) */ if (permission & FLAG_READ) { printf("読み込み権限あり\n"); }

5-2. sizeof演算子とキャスト演算子

sizeof演算子はデータ型やオブジェクトのバイト数を返します。プラットフォーム(32ビット/64ビット)によってintのバイト数が変わることがあるため、移植性の高いコードを書くにはsizeofを活用するのが重要です。

/* sizeofで各型のバイト数を確認 */ printf("char: %zu バイト\n", sizeof(char)); /* 1 */ printf("int: %zu バイト\n", sizeof(int)); /* 4(多くの環境) */ printf("double: %zu バイト\n", sizeof(double)); /* 8 */ /* キャスト演算子:整数を浮動小数点に変換 */ int a = 10, b = 3; double result = (double)a / b; /* 3.333... */ printf("%.2f\n", result); /* 3.33 */

📚 用語解説

キャスト(Type Cast):変数やリテラルのデータ型を別の型に明示的に変換すること。「(型名)式」の形式で書きます。整数÷整数が整数除算になる問題を回避するため「(double)a / b」のように一方を浮動小数点型にキャストするのが典型的な使用例です。型変換はデータが変わる可能性があるため、精度の低い型への変換(double→int)は慎重に行うことが必要です。

代表菅澤 代表菅澤
ビット演算子は最初は難しく感じますが、フラグ管理・ハードウェア制御・高速な2の累乗の乗除算(シフト演算)など、実務的な用途がはっきりしている演算子です。「今は読み方だけ覚えて、必要になったら詳しく調べる」というスタンスでOKです。

06 演算子の優先順位――完全一覧と実践的な使い方 計算の順序を正しく理解してバグのないコードを書く

C言語の演算子には優先順位(precedence)があり、同じ式に複数の演算子がある場合、優先順位が高い方から順に評価されます。数学でも「掛け算は足し算より先」という順序があるように、C言語でも同様のルールがあります。

優先順位(高い→低い)演算子結合方向
1(最高)() [] -> .左から右
2++ -- ! ~ (型) * & sizeof右から左
3* / %左から右
4+ -左から右
5<< >>左から右
6< <= > >=左から右
7== !=左から右
8&左から右
9^左から右
10|左から右
11&&左から右
12||左から右
13?:右から左
14= += -= *= /= など右から左
15(最低),左から右

6-1. 優先順位で起きる典型的なバグ

/* 優先順位を誤解したバグの例 */ int a = 2, b = 3, c = 4; /* 意図: (a + b) * c = 20 */ /* 実際: a + (b * c) = 14(*が+より優先) */ int wrong = a + b * c; /* 14 */ /* カッコで明示的に優先順位を指定(推奨) */ int correct = (a + b) * c; /* 20 */ /* ビット演算と比較演算の混在(要注意) */ /* 意図: (a & 0x01) == 1 */ /* 実際: a & (0x01 == 1) = a & 1(==が&より優先) */ if (a & 0x01 == 1) { /* バグ! */ /* ... */ } if ((a & 0x01) == 1) { /* カッコで正しく指定 */ /* ... */ }
💡 優先順位に迷ったらカッコを使う

演算子の優先順位を完全に暗記する必要はありません。「迷ったらカッコで明示する」が安全で確実なアプローチです。カッコを使うことでコードの意図が明確になり、読み手にも伝わりやすくなります。特にビット演算子(&, |)は比較演算子(==, !=)より優先順位が低いため、組み合わせるときは必ずカッコを付けましょう。

AI鬼管理山崎 AI鬼管理山崎
「優先順位表を丸暗記しなければいけない」と思っている人が多いですが、実際のコードではカッコを積極的に使えばほとんど問題ありません。優先順位表は「迷ったときに参照する辞書」として使うのが正しいスタンスです。
Claude Code 完全解説セミナー|経営者・会社役員専用 1on1 60分 無料Claude Codeを経営に活かしたい方へ — AI鬼管理

07 実務でよく使う演算子パターン集 現場のCコードでよく見る演算子の活用例をまとめて紹介

演算子の使い方を覚えたら、次は実際のコードでよく見るパターンを身につけましょう。以下に実務で頻出する演算子活用パターンをまとめます。

7-1. 三項演算子(条件演算子)でIf文を短縮

三項演算子(条件演算子)? :を使うと、シンプルなif-else文を1行で書けます。

/* If文を三項演算子で短縮 */ /* 通常のif文 */ int max; if (a > b) { max = a; } else { max = b; } /* 三項演算子を使った短縮版 */ int max = (a > b) ? a : b; /* 絶対値を求める */ int abs_val = (n >= 0) ? n : -n; /* 偶数奇数のラベル */ printf("%d は %s\n", n, (n % 2 == 0) ? "偶数" : "奇数");

7-2. シフト演算子による高速な2の累乗演算

/* 左シフト = ×2の累乗 */ int x = 1; printf("%d\n", x << 0); /* 1 = 1×2^0 */ printf("%d\n", x << 1); /* 2 = 1×2^1 */ printf("%d\n", x << 4); /* 16 = 1×2^4 */ printf("%d\n", x << 8); /* 256 = 1×2^8 */ /* バイトサイズのバッファを割り当てるときによく使う */ int buf_size = 1 << 10; /* 1024バイト(1KB) */
よく使うパターンコード例用途
2の累乗チェック(n & (n-1)) == 0nが2の累乗かどうかの高速判定
下位Nビットのマスクn & 0xFF下位8ビットだけ取り出す
ビットのトグルflags ^= 0x01特定フラグを反転(ON/OFFトグル)
スワップ(XORで)a ^= b; b ^= a; a ^= b;テンポラリ変数なしに2値を交換
符号なし右シフトの代用(unsigned)n >> k算術シフトと論理シフトの違いを回避

08 Claude CodeでC言語コードを自動生成する AIを使ってC言語学習とコード品質を同時に向上させる

C言語の演算子を学ぶとき「自分で書いたコードが合っているか確認したい」「演算子の優先順位でバグが出たが原因を調べたい」「もっと効率的なコードに書き換えたい」という悩みがよく出てきます。そこで活躍するのがClaude Codeです。

弊社(株式会社GENAI)では、Claude Max 20xプラン(月額$200)を使って開発業務を支援しています。C言語に限らず、コードのデバッグ・最適化・説明・テストケース生成まで、Claude Codeに任せることで開発効率を大幅に向上させています。

📚 用語解説

Claude Code:Anthropic社のAIエージェントツール。C言語・Python・JavaScriptなど多くのプログラミング言語に対応し、「この演算子の優先順位が原因でバグが出ている。修正して」「ビット演算子を使ってフラグ管理の実装をして」のような日本語の指示に従って、コードを自動生成・修正・説明します。

8-1. Claude Codeでできるコード支援の例

✔️「このCコードを実行すると何が出力されますか?特に++xとx++の動きを説明して」
✔️「演算子の優先順位が原因でバグが出ていそうです。カッコを正しく付けて修正して」
✔️「ビット演算子を使ってフラグ管理をするC言語のコードを書いて」
✔️「この計算式の整数オーバーフローが起きる可能性を確認して」
✔️「C言語で絶対値・最大値・最小値を三項演算子で実装して」
エラーのある
コードを貼る

「このコードの
どこがバグ?」
Claude Codeが
原因を特定

演算子優先順位・
型変換問題など
修正コードを
自動生成

カッコ追加や
キャスト挿入
説明も同時に
提供

「なぜこうなるか」
を日本語で解説
学習と開発を
同時に加速

デバッグしながら
知識が身につく

特に「なぜそのバグが起きているのか」を日本語で説明しながらコードを修正してくれる点が、Claude Codeの大きな特徴です。コードのエラーを直すだけでなく、「C言語の演算子の仕組みを理解しながら学ぶ」という使い方ができます

代表菅澤 代表菅澤
弊社の開発メンバーがC言語のビット演算のバグを3時間追っていたとき、Claude Codeに投げたら5分で「&演算子の優先順位が原因です。ここにカッコを追加してください」と正確に指摘されました。演算子の優先順位は人間が見落としやすいバグです。
AI鬼管理山崎 AI鬼管理山崎
C言語を学んでいる方にとってClaude Codeは「いつでも質問できる先生」のようなツールです。「この演算子は何をしているのか」「前置と後置の違いをコード例で説明して」のような学習サポートにもフル活用できます。

まとめると、C言語の演算子学習において以下の活用が特に効果的です。

学習フェーズClaude Codeの使い方期待効果
理解確認「++xとx++の違いをコードで説明して」概念の正確な理解を確認できる
デバッグ「このコードが期待どおり動かない。演算子の問題では?」バグの原因を高速に特定できる
コード改善「このif文を三項演算子で書き直して」よりシンプルなコードに改善できる
コードレビュー「このCコードに演算子の優先順位バグがないか確認して」バグを事前に発見できる
演習問題「C言語の演算子を使った練習問題を5問出して」 実践的なスキルが身につく

この記事では、C言語のすべての主要演算子について基礎から解説しました。最後にポイントをまとめます。

✔️算術演算子(+,-,*,/,%)は整数除算とゼロ除算に注意。++/--は前置と後置で動作が異なる
✔️比較演算子は「=」と「==」の混同が最大の落とし穴。定数を左に書くヨーダ記法が安全
✔️論理演算子(&&,||)の短絡評価を活用するとNULLチェックなどを安全に書ける
✔️代入演算子の複合版(+=,-=など)でコードを簡潔に書ける
✔️ビット演算子はフラグ管理・ハードウェア制御・高速な2の累乗演算に使う
✔️演算子の優先順位は暗記より「迷ったらカッコ」の方針が実用的
✔️Claude Codeを使えばC言語のコードデバッグ・学習サポートを高速化できる

C言語開発の効率化をClaude Codeでサポートします

C言語のバグ調査・コードレビュー・自動生成まで、Claude Codeを活用した開発支援を弊社AI鬼管理が提供しています。C言語入門の学習サポートから組み込み開発の効率化まで、幅広くご相談ください。

AI鬼管理山崎 AI鬼管理山崎
C言語の演算子優先順位バグはベテランエンジニアでも踏みやすい罠です。Claude Codeを使ったコードレビュー体制を導入することで、こうした人為的なミスを大幅に削減できます。まずは無料相談でお試しください。

NEXT STEP

この記事の内容を、あなたのビジネスで
実践してみませんか?

AI活用を自社で回せるようになりたい方へ

AI鬼管理

Claude Code・Cowork導入支援から業務設計・社内浸透まで実践ベースで伴走。「自社で回せる組織」を90日で作る経営者向けトレーニング。

よくある質問

Q. C言語の「%」は何の演算子ですか?

A. C言語の「%」は剰余演算子(モジュロ演算子)です。「a % b」で「aをbで割った余り」を計算します。例えば「10 % 3」は「1」になります(10÷3=3余り1)。偶数・奇数の判定(n % 2 == 0)や一定間隔での処理実行(i % 100 == 0)など、多くの実用的な場面で使われます。

Q. インクリメント演算子の前置(++x)と後置(x++)の違いは何ですか?

A. 単独で使う場合(i++; または ++i;)は同じ動作です。違いが出るのは、式の一部として使う場合です。前置(++x)は「先に+1してから式の値として使う」、後置(x++)は「現在の値を式に使ってから+1する」という動作になります。例えばy=5のとき、「z = ++y」はy=6・z=6に、「z = y++」はy=6・z=5になります。

Q. C言語の「==」と「=」の違いは何ですか?

A. 「=」は代入演算子でe変数に値を代入します。「==」は等値比較演算子でe2つの値が等しいかどうかを調べてtrueかfalseを返します。if文の条件には「==」を使います。「if (a = 5)」と書くとaに5が代入されて常にtrueになるバグが発生します。必ず「if (a == 5)」と書きましょう。

Q. 演算子の優先順位を間違えないコーディング方法はありますか?

A. カッコ「()」を積極的に使うことが最も確実な方法です。「a + b * c」が「a + (b * c)」と同じ動作でも、明示的に書きたい場合は「(a + b) * c」や「a + (b * c)」とカッコを付けることで意図が明確になります。特にビット演算子(&, |, ^)と比較演算子(==, !=)を組み合わせる場合は必ずカッコを付けてください。

Q. ビット演算子はどんな場面で使いますか?

A. ビット演算子は①フラグ管理(複数のON/OFF状態を1つの整数で管理)②組み込み/ハードウェア制御(レジスタ操作)③高速な2の累乗計算(<<と>>)④暗号化・ハッシュアルゴリズム⑤効率的なデータ圧縮——などで使われます。Web開発やスクリプト言語ではあまり使いませんが、C言語のシステムプログラミングや組み込み開発では頻出の知識です。

Q. C言語でゼロ除算が起きるとどうなりますか?

A. ゼロ除算は「未定義動作」であり、プログラムがクラッシュしたり、予期しない値を返したりします。必ず「if (b != 0)」のようにゼロチェックを事前に行ってから除算してください。浮動小数点型(float/double)のゼロ除算は「inf」(無限大)や「nan」(非数)を返すケースもあります。

Q. Claude Codeを使ってC言語を学ぶ具体的な方法を教えてください。

A. 以下の活用方法が効果的です。①「この演算子の動作を具体的なコード例で説明して」と概念を確認する②書いたコードを貼り付けて「バグがあれば指摘して」と確認する③「C言語の演算子を使った練習問題を出して」と問題演習をする④「このコードをより効率的に書き直して」とリファクタリングを学ぶ——Claude Codeは24時間対応のC言語家庭教師として使えます。

AIAI鬼管理

AI鬼管理へのお問い合わせ

この記事を読んで気になった方へ。
AI鬼管理の専門スタッフが、御社に最適な
業務自動化プランを無料でご提案します。

会社名を入力してください
業種を選択してください
お名前を入力してください
正しいメールアドレスを入力してください

1つ以上選択してください
1つ以上選択してください
月額コストを選択してください

約1時間のオンライン面談(Google Meet)です

空き枠を取得中...
面談日時を選択してください

予約確定後、Google Calendarの招待メールをお届けします。
しつこい営業は一切ございません。

監修 最終更新日: 2026年7月18日
菅澤孝平
菅澤 孝平 株式会社GENAI 代表取締役
  • AI業務自動化サービス「AI鬼管理」を運営 — Claude Code を活用し、経営者の業務を「AIエージェントに任せる仕組み」へ転換するパーソナルトレーニングを 伴走構築 で提供。日報・採用・問い合わせ対応・経費精算・議事録・データ集計・営業リスト等の定型業務を、AIに代行させる体制を経営者と一緒に作り込む
  • Claude Code 実装ノウハウを 経営者・法人クライアント に直接指導。生成AIを「便利ツール」ではなく 「業務を任せる存在」 として運用する手法を体系化
  • 「やらせ切る管理」メソッドの開発者。シンゲキ株式会社(2021年設立・鬼管理専門塾運営)にて累計3,000名以上の学習者を志望校合格に導いた管理メソッドを、AI × 経営者支援 に転用
  • 著書『3カ月で志望大学に合格できる鬼管理』(幻冬舎)、『親の過干渉こそ、最強の大学受験対策である。』(講談社)
  • メディア出演: REAL VALUE / カンニング竹山のイチバン研究所 / ええじゃないかBiz 他
  • 明治大学政治経済学部卒
現在は AI鬼管理(Claude Code活用の伴走型パーソナルトレーニング)を主事業とし、経営者と二人三脚で「AIに業務を任せる仕組み」を実装。「実行を強制する環境」を AI で構築する手法を、自社の実運用知見をもとに発信している。