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.