0Pricing
C Academy · Lektion

Operatorpräzedenz

Auswertungsreihenfolge

Operatorpräzedenz ist eine kostenlose C Academy-Lektion auf CoddyKit. Dies ist Lektion 4 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des C Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der C Academy-Kurs umfasst insgesamt 4 Lektionen.

Warum der Vorrang wichtig ist

Der Vorrang bestimmt, welcher Operator in einem Ausdruck mit mehreren Operatoren zuerst ausgeführt wird. Er entspricht der normalen Mathematik: Multiplikation vor Addition.

#include <stdio.h>
int main(void) {
    printf("%d\n", 2 + 3 * 4);
    return 0;
}

Klammern setzen den Vorrang außer Kraft

Klammern erzwingen die Reihenfolge der Auswertung. Verwenden Sie sie, um die Absicht deutlich zu machen und die Standardreihenfolge außer Kraft zu setzen.

#include <stdio.h>
int main(void) {
    printf("%d\n", (2 + 3) * 4);
    return 0;
}

Vorrang arithmetischer Operatoren

Bei den arithmetischen Operatoren binden * / % stärker als + -. Die Operatoren mit höherer Priorität werden zuerst ausgeführt.

#include <stdio.h>
int main(void) {
    int r = 10 - 2 * 3;
    printf("r = %d\n", r);
    return 0;
}

Assoziativität

Wenn Operatoren dieselbe Priorität haben, entscheidet die Assoziativität über die Auswertungsrichtung. Die meisten arithmetischen Ausdrücke werden von links nach rechts ausgewertet.

#include <stdio.h>
int main(void) {
    int r = 20 / 4 / 2;
    printf("r = %d\n", r);
    return 0;
}

Rechtsassoziativität der Zuweisung

Zuweisungen werden von rechts nach links gruppiert. Deshalb weist a = b = 5 zuerst b und anschließend a den Wert 5 zu.

#include <stdio.h>
int main(void) {
    int a, b;
    a = b = 5;
    printf("a = %d, b = %d\n", a, b);
    return 0;
}

Vergleiche und Arithmetik

Arithmetische Operatoren binden stärker als relationale Operatoren. Daher wird bei a + b > c zuerst a + b berechnet.

#include <stdio.h>
int main(void) {
    int a = 2, b = 3, c = 4;
    printf("%d\n", a + b > c);
    return 0;
}

Relationale und logische Operatoren

Relationale Operatoren binden stärker als &&, und && bindet stärker als ||.

#include <stdio.h>
int main(void) {
    int x = 5;
    if (x > 0 && x < 10)
        printf("single digit positive\n");
    return 0;
}

Unär vor binär

Unäre Operatoren wie ! und das unäre - binden sehr stark und werden vor binären Operatoren angewendet.

#include <stdio.h>
int main(void) {
    int x = 0;
    printf("%d\n", !x + 1);
    return 0;
}

Ein kniffliger Ausdruck

Ohne Klammern mischt dieser Ausdruck mehrere Prioritätsstufen. Werten Sie ihn sorgfältig aus.

#include <stdio.h>
int main(void) {
    int r = 2 + 3 * 4 > 10 && 1;
    printf("r = %d\n", r);
    return 0;
}

Im Zweifel Klammern verwenden

Guter C-Code verwendet großzügig Klammern. Sie kosten zur Laufzeit nichts und verhindern schwer erkennbare Fehler.

#include <stdio.h>
int main(void) {
    int a = 1, b = 2, c = 3;
    if ((a < b) && (b < c))
        printf("ascending\n");
    return 0;
}

Priorität in der Praxis

Dank der Operatorpriorität können wir eine übersichtliche Formel ohne zusätzliche Klammern schreiben.

#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;
}

Kurzer Test

Testen Sie Ihr Verständnis der Operatorpriorität.

Rückblick: Operatorpriorität

Sie haben gelernt, in welcher Reihenfolge C Operatoren auswertet.

  • * / % vor + -
  • Arithmetik vor relationalen und diese vor logischen Operatoren
  • Die meisten Operatoren sind linksassoziativ, Zuweisungen sind rechtsassoziativ
  • Unäre Operatoren binden stark
  • Klammern machen die Absicht eindeutig

Häufig gestellte Fragen

Ist die Lektion „Operatorpräzedenz“ kostenlos?

Ja — der vollständige Text von „Operatorpräzedenz“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des C Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der C Academy-Kurs umfasst insgesamt 4 Lektionen.

Was lerne ich in „Operatorpräzedenz“?

Auswertungsreihenfolge Du übst C Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um C Academy zu starten?

Keine Vorkenntnisse erforderlich. C Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 4 von 4.

Wie lange dauert die Lektion „Operatorpräzedenz“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser C Academy-Lektion Code schreiben und ausführen?

Ja. Jede C Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. Arithmetische Operatoren
  2. Relationale und logische Operatoren
  3. Zuweisung und Inkrement
  4. Operatorpräzedenz
← Zurück zu C Academy