Zum vorläufigen Abschluss der Behandlung der Operatoren folgt in tabellarischer Form die Rangfolge aller Operatoren. In der Tabelle gilt: Operatoren in der Gruppe 1 werden vor den Operatoren der Gruppe 2 ausgeführt usw. Manche der Operatoren in der Tabelle sind Ihnen im Augenblick noch nicht bekannt, wie z.B. der Operator -> oder auch new. Sie werden selbstverständlich im weiteren Verlaufe des Kurses noch behandelt.
| Gruppe | Operator | Bedeutung | Auswertung |
|---|---|---|---|
| 1 | :: | Zugriffsoperator | links->rechts |
| 2 | (...) | Klammer | links->rechts |
| (...) | Funktionsaufruf | ||
| [...] | Indizierung | ||
| -> | Indirekter Zugriff auf Klassenelement | ||
| . | Direkter Zugriff auf Klassenelement | ||
| ++ und -- | Post-Inkrement/Dekrement | ||
| 3 | ! und ~ | NOT und 1er-Komplement | rechts->links |
| + und - | Vorzeichen | ||
| ++ und -- | Pre-Inkrement/Dekrement | ||
| & | Adressoperator | ||
| * | Dereferenzierungsoperator | ||
| sizeof(...) | Größenoperator | ||
| new und delete | dynamische Speicherverwaltung | ||
| (...) | Typkonvertierung | ||
| 4 | .* und ->* | Indirekter Zugriff auf Klassenelement | links->rechts |
| 5 | * und / und % | Arithmetische Operatoren | links->rechts |
| 6 | + und - | Arithmetische Operatoren | links->rechts |
| 7 | << und >> | Schiebeoperatoren | links->rechts |
| 8 | < und <= und > und >= | Vergleichsoperatoren | links->rechts |
| 9 | == und != | Vergleichsoperatoren | links->rechts |
| 10 | & | UND Bitoperator | links->rechts |
| 11 | ^ | EXCLUSIV-ODER Bitoperator | links->rechts |
| 12 | | | ODER Bitoperator | links->rechts |
| 13 | && | logischer UND Operator | links->rechts |
| 14 | || | logischer ODER Operator | links->rechts |
| 15 | ?: | Bedingungsoperator | rechts->links |
| 16 | = und *= und
/= und %= und += und -= und &= und ^= und |= und <<= und >>= |
Zuweisungsoperatoren | rechts->links |
| 17 | throw | Exception auslösen | |
| 18 | , | Komma-Operator | links->rechts |
Die letzte Spalte Auswertung gibt an, in welcher Reihenfolge die einzelnen Operatoren abgearbeitet werden. So werden z.B. arithmetischen Ausdrücke mit gleichrangigen Operanden immer von links nach rechts abgearbeitet. Zuweisungen hingegen werden immer von rechts nach links abgearbeitet.
Denken Sie immer daran, dass Sie die Reihenfolge der Operationen durch entsprechende Klammerung jederzeit abändern können.
|
nVar = ++nVar + 1; oder Das Verhalten einer Anweisung ist in der Regel undefiniert, wenn eine Variable innerhalb einer Anweisung mehrfach verändert wird! Teilen Sie die Anweisung auf mehrere Anweisungen auf. Wenn Sie mehr zu diesem Thema wissen wollen, schauen Sie einmal in Ihrer Online-Hilfe oder auf dem Internet unter side-effects oder sequence-points nach. |
| Zeiger |