capypad
0 Tage Serie
cpp / beginner
Snippet

Operatorpriorität und Klammern

Die Operatorpriorität bestimmt, wie Ausdrücke ausgewertet werden. Multiplikation hat eine höhere Priorität als Addition. Logisches UND (&&) hat höhere Priorität als ODER (||). Verwende immer Klammern, um deine Absicht klar zu machen und Fehler zu vermeiden.

snippet.cpp
cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
 
int main() {
int a = 5, b = 3, c = 8;
 
int result1 = a + b * c;
int result2 = (a + b) * c;
 
bool isValid = (a > 2) && (b < 10) || (c == 8);
 
std::cout << "a + b * c = " << result1 << std::endl;
std::cout << "(a + b) * c = " << result2 << std::endl;
std::cout << "isValid = " << isValid << std::endl;
 
return 0;
}
Erklärung
1
a + b * c
Multiplikation wird zuerst ausgewertet: b * c = 24, dann a + 24 = 29
2
(a + b) * c
Klammern erzwingen Addition zuerst: (5+3) = 8, dann 8 * 8 = 64
3
(a > 2) && (b < 10)
Vergleichsoperatoren haben niedrigere Priorität als Arithmetik
4
isValid = ...
Ohne Klammern würde && stärker binden als ||