演算子の優先順位
評価の順序です。
「演算子の優先順位」はCoddyKit上の無料C Academyレッスンです。 これはレッスン4/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはC Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 C Academyコースには全4レッスンが含まれています。
優先順位が重要な理由
複数の演算子を含む式で、どの演算子を先に実行するかを優先順位が決めます。通常の数学と同じく、加算より乗算が先です。
#include <stdio.h>
int main(void) {
printf("%d\n", 2 + 3 * 4);
return 0;
}括弧による上書き
括弧で評価順序を強制できます。意図を明確にし、デフォルトの順序を上書きするために使います。
#include <stdio.h>
int main(void) {
printf("%d\n", (2 + 3) * 4);
return 0;
}算術演算子の優先順位
算術演算子では、* / %のほうが+ -よりも優先順位が高くなります。優先順位の高い演算子から先に実行されます。
#include <stdio.h>
int main(void) {
int r = 10 - 2 * 3;
printf("r = %d\n", r);
return 0;
}結合規則
演算子の優先順位が同じ場合は、結合規則によって評価する方向が決まります。算術演算の多くは左から右に評価されます。
#include <stdio.h>
int main(void) {
int r = 20 / 4 / 2;
printf("r = %d\n", r);
return 0;
}代入の右結合性
代入は右から左に結合します。そのため、a = b = 5では、まずbに5が代入され、その後aに代入されます。
#include <stdio.h>
int main(void) {
int a, b;
a = b = 5;
printf("a = %d, b = %d\n", a, b);
return 0;
}比較と算術演算
算術演算は関係演算子よりも優先順位が高いため、a + b > cでは、まずa + bが計算されます。
#include <stdio.h>
int main(void) {
int a = 2, b = 3, c = 4;
printf("%d\n", a + b > c);
return 0;
}関係演算と論理演算
関係演算子は&&よりも優先順位が高く、&&は||よりも優先順位が高くなります。
#include <stdio.h>
int main(void) {
int x = 5;
if (x > 0 && x < 10)
printf("single digit positive\n");
return 0;
}単項演算子は二項演算子より先
!や単項の-のような単項演算子は優先順位が非常に高く、二項演算子より先に適用されます。
#include <stdio.h>
int main(void) {
int x = 0;
printf("%d\n", !x + 1);
return 0;
}複雑な式
この式は、括弧がないと複数の優先順位の段階が混在します。注意深く順番を追ってください。
#include <stdio.h>
int main(void) {
int r = 2 + 3 * 4 > 10 && 1;
printf("r = %d\n", r);
return 0;
}迷ったら括弧を付ける
よいCコードでは、括弧を積極的に使います。実行時のコストはなく、見つけにくいバグを防げます。
#include <stdio.h>
int main(void) {
int a = 1, b = 2, c = 3;
if ((a < b) && (b < c))
printf("ascending\n");
return 0;
}実際の優先順位
ここでは、優先順位を利用して、余分な括弧なしにすっきりした式を書けます。
#include <stdio.h>
int main(void) {
int base = 10, rate = 2, hours = 3;
int pay = base + rate * hours;
printf("pay = %d\n", pay);
return 0;
}理解度チェック
演算子の優先順位について理解できているか確認しましょう。
まとめ:演算子の優先順位
C言語で演算子が評価される順序を学びました。
* / %が+ -より先- 算術演算、関係演算、論理演算の順に評価
- ほとんどの演算子は左結合で、代入は右結合
- 単項演算子は優先順位が高い
- 括弧を使うと意図を明確にできる
よくある質問
「演算子の優先順位」レッスンは無料ですか?
はい。「演算子の優先順位」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、C Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 C Academyコースには全4レッスンが含まれています。
「演算子の優先順位」で何を学びますか?
評価の順序です。 ブラウザで直接実行するハンズオンコードでC Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
C Academyを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのC Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン4/4です。
「演算子の優先順位」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このC Academyレッスンでコードを書いて実行できますか?
はい。すべてのC Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- 算術演算子
- 関係演算子と論理演算子
- 代入とインクリメント
- 演算子の優先順位