C言語の演算子の優先順位一覧を完全ガイド!初心者向けに徹底解説
生徒
「C言語の演算子ってたくさんありますよね?どれが先に計算されるのか分からなくなります。」
先生
「実はC言語には演算子の優先順位が決められていて、計算の順番がしっかりルール化されています。」
生徒
「算数で足し算より掛け算が先、みたいなイメージですか?」
先生
「まさにその通りです。C言語でも掛け算や割り算が足し算より先に計算されます。今日は初心者でも分かりやすいように表で整理して理解していきましょう。」
1. C言語の演算子とは?
C言語にはたくさんの演算子があります。演算子という言葉は難しそうに聞こえますが、これは計算を行うための記号のことです。例えば足し算を行う記号は+で、引き算は-です。パソコンを使ったことが無い人でも見たことがある記号ばかりなので安心してください。
2. 演算子の優先順位が必要な理由
もし優先順位がなかったら、同じ計算でも書く人によって結果が変わってしまうことがあります。例えば「2 + 3 * 4」という計算があったとします。このとき、掛け算が先なら答えは「14」になりますが、足し算が先だと「20」になってしまいます。このように答えが変わらないように、計算する順番が決められています。
3. C言語の演算子の優先順位一覧
C言語の演算子の優先順位は少し多く見えますが、見やすい表にまとめると理解しやすくなります。上にあるものほど優先順位が高い計算になります。
| 優先順位 | 演算子の例 | 説明 |
|---|---|---|
| 1 | () | 括弧で囲んだ計算が最優先 |
| 2 | ! | 否定(真偽を反転) |
| 3 | * / % | 掛け算、割り算、余り |
| 4 | + - | 足し算、引き算 |
| 5 | < > <= >= | 大小比較 |
| 6 | == != | 等しい、等しくない |
| 7 | && | 論理AND(かつ) |
| 8 | || | 論理OR(または) |
| 9 | = | 代入 |
この一覧を覚えておくと、複雑な式を書いたときにコンピュータがどの順番で計算するかが分かるようになります。
4. 優先順位が分かりやすいサンプルコード
実際にプログラムを書いて、どのように優先順位が働いているのか確認してみましょう。
#include <stdio.h>
int main() {
int a = 2 + 3 * 4;
int b = (2 + 3) * 4;
printf("aの結果は%dです\n", a);
printf("bの結果は%dです\n", b);
return 0;
}
このプログラムでは、見た目は似ている計算ですが結果が全く違います。aは掛け算が先に計算されるので「14」になり、bは括弧で足し算を先にしているので「20」になります。実際に実行すると以下のような結果が表示されます。
aの結果は14です
bの結果は20です
5. 優先順位を覚えられないときは括弧を使う
C言語の演算子は種類が多いので、すべて覚えることが難しいと感じる人もいます。そんなときは、括弧を使って計算の順番を分かりやすくする方法があります。括弧は最優先で計算されるので、自分の意図した順番で計算することができます。
int x = 10 + 5 * 2; // 実際は10 + (5 * 2)として計算される
int y = (10 + 5) * 2; // 括弧により足し算が先
このようにしておけば、流れを間違えずに済みます。プログラムは人間が読んで理解できることも大事なので、見た人が迷わないような書き方をすると良いです。
6. プログラミング初心者がつまずきやすいポイント
初心者がC言語の演算子でつまずく原因は、算数と同じようで違う部分があるからです。特に注意するところをまとめました。
- == と = の違い:「==」は等しいかを判定、「=」は代入
- % が余りになる:割り算の余りを返すので「5 % 2 = 1」になる
- && や || がある:真偽を扱う特別な演算子
これらは初心者がよく間違える部分ですが、ひとつずつ理解していけば必ず使いこなせるようになります。
7. 演算子の優先順位を使いこなすコツ
演算子の優先順位を正しく理解すると、C言語の条件分岐や計算式が正しく動くようになります。プログラムが思った通りの結果にならない時、優先順位を見直すと解決することがよくあります。
ただし、難しいと感じる人は無理に覚えなくても大丈夫です。括弧を使えば安全に順番を指定できるので、読みやすいコードを書く習慣をつけることが大切です。