0Pricing
C Academy · レッスン

演算子の優先順位

評価の順序です。

「演算子の優先順位」は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フィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. 算術演算子
  2. 関係演算子と論理演算子
  3. 代入とインクリメント
  4. 演算子の優先順位
← C Academyに戻る