5.3 auswertung von ausdrücken · operatoren unäre operatoren: symbol name types l/r level ++...
TRANSCRIPT
![Page 1: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/1.jpg)
5.3 Auswertung von Ausdrücken
Funktionen in Java bekommen Parameter/Argumente als Input,
und liefern als Output den Wert eines vorbestimmten Typs. Zum
Beispiel könnte man eine Funktion
int min(int a, int b)
implementieren, die das Minimum ihrer Argumente zurückliefert.
Operatoren sind spezielle vordefinierte Funktionen, die in
Infix-Notation geschrieben werden (wenn sie binär sind):
a + b = +(a,b)
Funktionen, werden hier nur eingeführt, weil wir sie beider Ausdrucksauswertung benutzen möchten. Eine de-taillierte Einführung erfolgt später.
30. Jan. 2018
Felix Brandt, Harald Räcke 80/596
![Page 2: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/2.jpg)
5.3 Auswertung von Ausdrücken
Ein Ausdruck ist eine Kombination von Literalen, Operatoren,
Funktionen, Variablen und Klammern, die verwendet wird, um
einen Wert zu berechnen.
Beispiele: (x z.B. vom Typ int)
ñ 7 + 4
ñ 3 / 5 + 3
ñ min(3,x) + 20
ñ x = 7
ñ x *= 2
5.3 Auswertung von Ausdrücken 30. Jan. 2018
Felix Brandt, Harald Räcke 81/596
![Page 3: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/3.jpg)
Operatoren
Unäre Operatoren:
symbol name types L/R level++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2++ Pre-inkrement (var) Zahl, char rechts 3-- Pre-dekrement (var) Zahl, char rechts 3+ unäres Plus Zahl, char rechts 3- unäres Minus Zahl, char rechts 3
! Negation boolean rechts 3
Man kann keinen legalen Ausdruck bilden, bei der die Assoziativi-tät der Postfix-Operatoren (Gruppe Priorität 2) eine Rolle spielenwürde.
Die Spalte „L/R“ beschreibt die Assoziativität des Operators.
Die Spalte „level“ die Priorität.
Im Folgenden sind (für binäre Operatoren) beide Operanden jeweils vom gleichen Typ.
„Zahl“ steht hier für einen der Zahltypen byte, short, int, long, float oder double.
Unäre +/--Operatoren konvertieren byte, short, char zuerst nach int.
5.3 Auswertung von Ausdrücken 30. Jan. 2018
Felix Brandt, Harald Räcke 82/596
![Page 4: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/4.jpg)
Achtung
Diese Beschreibung der Vorrangregeln in Form von Prioritätenfür Operatoren findet sich nicht im Java Reference Manual. Dortwird nur die formale kontextfreie Grammatik von Java beschrie-ben. Die Vorrangregeln leiten sich daraus ab und erleichtern denUmgang mit Ausdrücken, da man nicht in die formale Gramma-tik schauen muß um einen Ausdruck zu verstehen.
Es gibt im Internet zahlreiche teils widersprüchliche Tabel-len, die die Vorrangregeln von Java-Operatoren beschreiben :(.Die gesamte Komplexität der Ausdruckssprache von Java läßtsich wahrscheinlich nicht in dieses vereinfachte Schema pres-sen.
5.3 Auswertung von Ausdrücken 30. Jan. 2018
Felix Brandt, Harald Räcke 83/596
![Page 5: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/5.jpg)
Prefix- und Postfixoperator
ñ Die Operatoranwendungen ++x und x++ inkrementieren
beide den Wert der Variablen x (als Seiteneffekt).
ñ ++x tut das, bevor der Wert des Ausdrucks ermittelt wird
(Pre-Inkrement).
ñ x++ tut das, nachdem der Wert ermittelt wurde
(Post-Inkrement).
ñ b = x++; entspricht:
b = x;x = x + 1;
ñ b = ++x; entspricht:
x = x + 1;b = x;
Die Entsprechung gilt z.B. für ints. Fürshorts müßte es heißen:
b = x;x = (short) (x + 1);
da x = x + 1 nicht compiliert wenn xein short ist.
(short) ist hier ein Typecast-Operator,den wir später kennenlernen.
5.3 Auswertung von Ausdrücken 30. Jan. 2018
Felix Brandt, Harald Räcke 84/596
![Page 6: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/6.jpg)
Operatoren
Binäre arithmetische Operatoren:
byte, short, char werden nach int konvertiert
symbol name types L/R level
* Multiplikation Zahl, char links 4/ Division Zahl, char links 4
% Modulo Zahl, char links 4+ Addition Zahl, char links 5- Subtraktion Zahl, char links 5
Konkatenation
symbol name types L/R level+ Konkatenation String links 5
5.3 Auswertung von Ausdrücken 30. Jan. 2018
Felix Brandt, Harald Räcke 85/596
![Page 7: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/7.jpg)
Operatoren
Vergleichsoperatoren:
symbol name types L/R level
> größer Zahl, char keine 7>= größergleich Zahl, char keine 7< kleiner Zahl, char keine 7<= kleinergleich Zahl, char keine 7== gleich alle links 8
!= ungleich alle links 8
Für Referenzdatentypen (kommt später)vergleichen die Operatoren == und !=nur die Referenzen.
5.3 Auswertung von Ausdrücken 30. Jan. 2018
Felix Brandt, Harald Räcke 86/596
![Page 8: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/8.jpg)
Operatoren
Boolsche Operatoren:
symbol name types L/R level
&& Und-Bedingung boolean links 12|| Oder-Bedingung boolean links 13
5.3 Auswertung von Ausdrücken 30. Jan. 2018
Felix Brandt, Harald Räcke 87/596
![Page 9: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/9.jpg)
Operatoren
Zuweisungsoperatoren:
symbol name types L/R level= Zuweisung (links var) alle rechts 15
*=,/=, %=,
+=, -=Zuweisung (links var) alle rechts 15
Für die letzte Form gilt:
v ◦= a ⇐⇒ v = (type(v)) (v ◦ a)
5.3 Auswertung von Ausdrücken 30. Jan. 2018
Felix Brandt, Harald Räcke 88/596
![Page 10: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/10.jpg)
Operatoren
Warnung:
ñ Eine Zuweisung x = y; ist in Wahrheit ein Ausdruck.
ñ Der Wert ist der Wert der rechten Seite.
ñ Die Modifizierung der Variablen x erfolgt als Seiteneffekt.
ñ Das Semikolon ’;’ hinter einem Ausdruck wirft nur den
Wert weg.
Fatal für Fehler in Bedingungen:
boolean x = false;if (x = true)
write("Sorry! This must be an error ...");
Ein Seiteneffekt sind Änderungen von Zustän-den/Variablen, die durch die Auswertung desAusdrucks entstehen.
In C ist diese Art des Fehlers noch wesent-lich häufiger, da auch z.B. x = 1 (für intx) in der Bedingung vorkommen kann. DasErgebnis des Ausdrucks (1) wird in den bool-schen Wert true konvertiert. Letzteres ist inJava nicht möglich.
In Java kann man durch das ’;’ aus den meisten Aus-drücken eine Anweisung machen, die nur den Seitenef-fekt des Ausdrucks durchführt.
5.3 Auswertung von Ausdrücken 30. Jan. 2018
Felix Brandt, Harald Räcke 89/596
![Page 11: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/11.jpg)
5.3 Auswertung von Ausdrücken
Assoziativität
ñ Die Assoziativität entscheidet über die Reihenfolge bei
Operatoren gleicher Priorität. (links = der linkeste Operator
wird zuerst ausgeführt)
ñ Alle Operatoren einer Prioritätsgruppe haben dieselbe
Assoziativität.
ñ Bis auf Zuweisungsoperatoren (=, +=, etc.) sind alle binären
Operatoren linksassoziativ.
ñ unäre Operatoren, die ihr Argument rechts erwarten sind
rechtsassoziativ
ñ unäre Operatoren, die ihr Argument links erwarten
(postfix-Operatoren ++, --) sind linksassoziativ
ñ Der ternäre Bedingungsoperator (später) ist rechtsassoziativ
5.3 Auswertung von Ausdrücken 30. Jan. 2018
Felix Brandt, Harald Räcke 90/596
![Page 12: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/12.jpg)
5.3 Auswertung von Ausdrücken
Assoziativität
ñ Die Assoziativität entscheidet über die Reihenfolge bei
Operatoren gleicher Priorität. (links = der linkeste Operator
wird zuerst ausgeführt)
ñ Alle Operatoren einer Prioritätsgruppe haben dieselbe
Assoziativität.
ñ Bis auf Zuweisungsoperatoren (=, +=, etc.) sind alle binären
Operatoren linksassoziativ.
ñ unäre Operatoren, die ihr Argument rechts erwarten sind
rechtsassoziativ
ñ unäre Operatoren, die ihr Argument links erwarten
(postfix-Operatoren ++, --) sind linksassoziativ
ñ Der ternäre Bedingungsoperator (später) ist rechtsassoziativ
5.3 Auswertung von Ausdrücken 30. Jan. 2018
Felix Brandt, Harald Räcke 90/596
![Page 13: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/13.jpg)
5.3 Auswertung von Ausdrücken
Assoziativität
ñ Die Assoziativität entscheidet über die Reihenfolge bei
Operatoren gleicher Priorität. (links = der linkeste Operator
wird zuerst ausgeführt)
ñ Alle Operatoren einer Prioritätsgruppe haben dieselbe
Assoziativität.
ñ Bis auf Zuweisungsoperatoren (=, +=, etc.) sind alle binären
Operatoren linksassoziativ.
ñ unäre Operatoren, die ihr Argument rechts erwarten sind
rechtsassoziativ
ñ unäre Operatoren, die ihr Argument links erwarten
(postfix-Operatoren ++, --) sind linksassoziativ
ñ Der ternäre Bedingungsoperator (später) ist rechtsassoziativ
5.3 Auswertung von Ausdrücken 30. Jan. 2018
Felix Brandt, Harald Räcke 90/596
![Page 14: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/14.jpg)
5.3 Auswertung von Ausdrücken
Assoziativität
ñ Die Assoziativität entscheidet über die Reihenfolge bei
Operatoren gleicher Priorität. (links = der linkeste Operator
wird zuerst ausgeführt)
ñ Alle Operatoren einer Prioritätsgruppe haben dieselbe
Assoziativität.
ñ Bis auf Zuweisungsoperatoren (=, +=, etc.) sind alle binären
Operatoren linksassoziativ.
ñ unäre Operatoren, die ihr Argument rechts erwarten sind
rechtsassoziativ
ñ unäre Operatoren, die ihr Argument links erwarten
(postfix-Operatoren ++, --) sind linksassoziativ
ñ Der ternäre Bedingungsoperator (später) ist rechtsassoziativ
5.3 Auswertung von Ausdrücken 30. Jan. 2018
Felix Brandt, Harald Räcke 90/596
![Page 15: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/15.jpg)
5.3 Auswertung von Ausdrücken
Assoziativität
ñ Die Assoziativität entscheidet über die Reihenfolge bei
Operatoren gleicher Priorität. (links = der linkeste Operator
wird zuerst ausgeführt)
ñ Alle Operatoren einer Prioritätsgruppe haben dieselbe
Assoziativität.
ñ Bis auf Zuweisungsoperatoren (=, +=, etc.) sind alle binären
Operatoren linksassoziativ.
ñ unäre Operatoren, die ihr Argument rechts erwarten sind
rechtsassoziativ
ñ unäre Operatoren, die ihr Argument links erwarten
(postfix-Operatoren ++, --) sind linksassoziativ
ñ Der ternäre Bedingungsoperator (später) ist rechtsassoziativ
5.3 Auswertung von Ausdrücken 30. Jan. 2018
Felix Brandt, Harald Räcke 90/596
![Page 16: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/16.jpg)
5.3 Auswertung von Ausdrücken
Assoziativität
ñ Die Assoziativität entscheidet über die Reihenfolge bei
Operatoren gleicher Priorität. (links = der linkeste Operator
wird zuerst ausgeführt)
ñ Alle Operatoren einer Prioritätsgruppe haben dieselbe
Assoziativität.
ñ Bis auf Zuweisungsoperatoren (=, +=, etc.) sind alle binären
Operatoren linksassoziativ.
ñ unäre Operatoren, die ihr Argument rechts erwarten sind
rechtsassoziativ
ñ unäre Operatoren, die ihr Argument links erwarten
(postfix-Operatoren ++, --) sind linksassoziativ
ñ Der ternäre Bedingungsoperator (später) ist rechtsassoziativ
5.3 Auswertung von Ausdrücken 30. Jan. 2018
Felix Brandt, Harald Räcke 90/596
![Page 17: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/17.jpg)
5.3 Auswertung von Ausdrücken
Die Auswertung eines Ausdrucks liefert
ñ eine Variable (var),
ñ einen reinen Wert (val) oder
ñ void (void)
In den ersten beiden Fällen hat der Ausdruck dann einen
ñ Typ, z.B.: int, und einen
ñ Wert, z.B.: 42
Für z.B. Zuweisungen muss die Auswertung des Ausdrucks auf
der linken Seite eine Variable ergeben!!!
5.3 Auswertung von Ausdrücken 30. Jan. 2018
Felix Brandt, Harald Räcke 91/596
![Page 18: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/18.jpg)
5.3 Auswertung von Ausdrücken
In Java werden Unterausdrücke von links nach rechts
ausgewertet. D.h. um den Wert einer Operation zu berechnen:
ñ werte (rekursiv) alle Operanden von links nach rechts aus
ñ führe die Operation auf den Resultaten aus
Ausnahmen: ||, &&, und der ternäre Bedingungsoperator :?,
werten nicht alle Operanden aus (Kurzschlussauswertung).
Man sollte nie Ausdrücke formulieren, deren Ergebnis von
der Auswertungsreihenfolge abhängt!!!
In C/C++, ist die Auswertungsreihenfolge nicht defi-niert, d.h., sie ist compilerabhängig.
Den Bedingungsoperator lernen wir später kennen.
Eine Kurzschlussauswertung ist natür-lich ok. Dafür gibt es sehr nützliche An-wendungen.
5.3 Auswertung von Ausdrücken 30. Jan. 2018
Felix Brandt, Harald Räcke 92/596
![Page 19: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/19.jpg)
5.3 Auswertung von Ausdrücken
In Java werden Unterausdrücke von links nach rechts
ausgewertet. D.h. um den Wert einer Operation zu berechnen:
ñ werte (rekursiv) alle Operanden von links nach rechts aus
ñ führe die Operation auf den Resultaten aus
Ausnahmen: ||, &&, und der ternäre Bedingungsoperator :?,
werten nicht alle Operanden aus (Kurzschlussauswertung).
Man sollte nie Ausdrücke formulieren, deren Ergebnis von
der Auswertungsreihenfolge abhängt!!!
In C/C++, ist die Auswertungsreihenfolge nicht defi-niert, d.h., sie ist compilerabhängig.
Den Bedingungsoperator lernen wir später kennen.
Eine Kurzschlussauswertung ist natür-lich ok. Dafür gibt es sehr nützliche An-wendungen.
5.3 Auswertung von Ausdrücken 30. Jan. 2018
Felix Brandt, Harald Räcke 92/596
![Page 20: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/20.jpg)
5.3 Auswertung von Ausdrücken
Im Folgenden betrachten wir Klammern als einen Operator der
nichts tut:
symbol name types L/R level
() Klammerung alle links 0
5.3 Auswertung von Ausdrücken 30. Jan. 2018
Felix Brandt, Harald Räcke 93/596
![Page 21: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/21.jpg)
Beispiel: 2 + x * (z - d)
2 + x * ( z – d )2 + x * ( z – d )
Punkt geht vor Strichrechnung.
Ganzahlliterale sind vom Typ int,wenn nicht z.B. ein L angehängtwird, um das Literal als long zuklassifizieren.
5.3 Auswertung von Ausdrücken 30. Jan. 2018
Felix Brandt, Harald Räcke 94/596
![Page 22: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/22.jpg)
Beispiel: 2 + x * (z - d)
2 + x * ( z – d )2 + x * ( z – d )
Punkt geht vor Strichrechnung.
Ganzahlliterale sind vom Typ int,wenn nicht z.B. ein L angehängtwird, um das Literal als long zuklassifizieren.
5.3 Auswertung von Ausdrücken 30. Jan. 2018
Felix Brandt, Harald Räcke 94/596
![Page 23: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/23.jpg)
Beispiel: 2 + x * (z - d)
2 + x * ( z – d )2 + x * ( z – d )
Punkt geht vor Strichrechnung.
Ganzahlliterale sind vom Typ int,wenn nicht z.B. ein L angehängtwird, um das Literal als long zuklassifizieren.
5.3 Auswertung von Ausdrücken 30. Jan. 2018
Felix Brandt, Harald Räcke 94/596
![Page 24: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/24.jpg)
Beispiel: 2 + x * (z - d)
2 + x * ( )
z – d
2 + x * ( )
z – d
Punkt geht vor Strichrechnung.
Ganzahlliterale sind vom Typ int,wenn nicht z.B. ein L angehängtwird, um das Literal als long zuklassifizieren.
5.3 Auswertung von Ausdrücken 30. Jan. 2018
Felix Brandt, Harald Räcke 94/596
![Page 25: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/25.jpg)
Beispiel: 2 + x * (z - d)
2 + x * ( )
z – d
2 + x * ( )
z – d
Punkt geht vor Strichrechnung.
Ganzahlliterale sind vom Typ int,wenn nicht z.B. ein L angehängtwird, um das Literal als long zuklassifizieren.
5.3 Auswertung von Ausdrücken 30. Jan. 2018
Felix Brandt, Harald Räcke 94/596
![Page 26: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/26.jpg)
Beispiel: 2 + x * (z - d)
2 + *
x ( )
z – d
2 + *
x ( )
z – d
Punkt geht vor Strichrechnung.
Ganzahlliterale sind vom Typ int,wenn nicht z.B. ein L angehängtwird, um das Literal als long zuklassifizieren.
5.3 Auswertung von Ausdrücken 30. Jan. 2018
Felix Brandt, Harald Räcke 94/596
![Page 27: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/27.jpg)
Beispiel: 2 + x * (z - d)
2 + *
x ( )
z – d
2 + *
x ( )
z – d
Punkt geht vor Strichrechnung.
Ganzahlliterale sind vom Typ int,wenn nicht z.B. ein L angehängtwird, um das Literal als long zuklassifizieren.
5.3 Auswertung von Ausdrücken 30. Jan. 2018
Felix Brandt, Harald Räcke 94/596
![Page 28: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/28.jpg)
Beispiel: 2 + x * (z - d)
+
2 *
x ( )
z – d
+
2 *
x ( )
z – d
Punkt geht vor Strichrechnung.
Ganzahlliterale sind vom Typ int,wenn nicht z.B. ein L angehängtwird, um das Literal als long zuklassifizieren.
5.3 Auswertung von Ausdrücken 30. Jan. 2018
Felix Brandt, Harald Räcke 94/596
![Page 29: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/29.jpg)
Beispiel: 2 + x * (z - d)
+
2 *
x ( )
z – d
+
2 *
x ( )
z – d
Punkt geht vor Strichrechnung.
Ganzahlliterale sind vom Typ int,wenn nicht z.B. ein L angehängtwird, um das Literal als long zuklassifizieren.
5.3 Auswertung von Ausdrücken 30. Jan. 2018
Felix Brandt, Harald Räcke 94/596
![Page 30: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/30.jpg)
Beispiel: 2 + x * (z - d)
+
2 *
x ( )
–
z d
+
2 *
x ( )
–
z d
Punkt geht vor Strichrechnung.
Ganzahlliterale sind vom Typ int,wenn nicht z.B. ein L angehängtwird, um das Literal als long zuklassifizieren.
5.3 Auswertung von Ausdrücken 30. Jan. 2018
Felix Brandt, Harald Räcke 94/596
![Page 31: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/31.jpg)
Beispiel: 2 + x * (z - d)
+
2 *
x ( )
–
z d
+
2 *
x ( )
–
z d
-3x 7d 5z
Punkt geht vor Strichrechnung.
Ganzahlliterale sind vom Typ int,wenn nicht z.B. ein L angehängtwird, um das Literal als long zuklassifizieren.
5.3 Auswertung von Ausdrücken 30. Jan. 2018
Felix Brandt, Harald Räcke 94/596
![Page 32: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/32.jpg)
Beispiel: 2 + x * (z - d)
+
2 *
x ( )
–
z d
+
2 *
x ( )
–
z d
-3x 7d 5z
Punkt geht vor Strichrechnung.
Ganzahlliterale sind vom Typ int,wenn nicht z.B. ein L angehängtwird, um das Literal als long zuklassifizieren.
5.3 Auswertung von Ausdrücken 30. Jan. 2018
Felix Brandt, Harald Räcke 94/596
![Page 33: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/33.jpg)
Beispiel: 2 + x * (z - d)
+
2 *
x ( )
–
z d
2, intval
+
2 *
x ( )
–
z d
-3x 7d 5z
Punkt geht vor Strichrechnung.
Ganzahlliterale sind vom Typ int,wenn nicht z.B. ein L angehängtwird, um das Literal als long zuklassifizieren.
5.3 Auswertung von Ausdrücken 30. Jan. 2018
Felix Brandt, Harald Räcke 94/596
![Page 34: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/34.jpg)
Beispiel: 2 + x * (z - d)
+
2 *
x ( )
–
z d
2, intval
+
2 *
x ( )
–
z d
-3x 7d 5z
Punkt geht vor Strichrechnung.
Ganzahlliterale sind vom Typ int,wenn nicht z.B. ein L angehängtwird, um das Literal als long zuklassifizieren.
5.3 Auswertung von Ausdrücken 30. Jan. 2018
Felix Brandt, Harald Räcke 94/596
![Page 35: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/35.jpg)
Beispiel: 2 + x * (z - d)
+
2 *
x ( )
–
z d
2, intval
-3, intvar
+
2 *
x ( )
–
z d
-3x 7d 5z
Punkt geht vor Strichrechnung.
Ganzahlliterale sind vom Typ int,wenn nicht z.B. ein L angehängtwird, um das Literal als long zuklassifizieren.
5.3 Auswertung von Ausdrücken 30. Jan. 2018
Felix Brandt, Harald Räcke 94/596
![Page 36: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/36.jpg)
Beispiel: 2 + x * (z - d)
+
2 *
x ( )
–
z d
2, intval
-3, intvar
+
2 *
x ( )
–
z d
-3x 7d 5z
Punkt geht vor Strichrechnung.
Ganzahlliterale sind vom Typ int,wenn nicht z.B. ein L angehängtwird, um das Literal als long zuklassifizieren.
5.3 Auswertung von Ausdrücken 30. Jan. 2018
Felix Brandt, Harald Räcke 94/596
![Page 37: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/37.jpg)
Beispiel: 2 + x * (z - d)
+
2 *
x ( )
–
z d
2, intval
-3, intvar
5, intvar
+
2 *
x ( )
–
z d
-3x 7d 5z
Punkt geht vor Strichrechnung.
Ganzahlliterale sind vom Typ int,wenn nicht z.B. ein L angehängtwird, um das Literal als long zuklassifizieren.
5.3 Auswertung von Ausdrücken 30. Jan. 2018
Felix Brandt, Harald Räcke 94/596
![Page 38: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/38.jpg)
Beispiel: 2 + x * (z - d)
+
2 *
x ( )
–
z d
2, intval
-3, intvar
5, intvar
+
2 *
x ( )
–
z d
-3x 7d 5z
Punkt geht vor Strichrechnung.
Ganzahlliterale sind vom Typ int,wenn nicht z.B. ein L angehängtwird, um das Literal als long zuklassifizieren.
5.3 Auswertung von Ausdrücken 30. Jan. 2018
Felix Brandt, Harald Räcke 94/596
![Page 39: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/39.jpg)
Beispiel: 2 + x * (z - d)
+
2 *
x ( )
–
z d
2, intval
-3, intvar
5, intvar
7, intvar
+
2 *
x ( )
–
z d
-3x 7d 5z
Punkt geht vor Strichrechnung.
Ganzahlliterale sind vom Typ int,wenn nicht z.B. ein L angehängtwird, um das Literal als long zuklassifizieren.
5.3 Auswertung von Ausdrücken 30. Jan. 2018
Felix Brandt, Harald Räcke 94/596
![Page 40: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/40.jpg)
Beispiel: 2 + x * (z - d)
+
2 *
x ( )
–
z d
2, intval
-3, intvar
5, intvar
7, intvar
+
2 *
x ( )
–
z d
-3x 7d 5z
Punkt geht vor Strichrechnung.
Ganzahlliterale sind vom Typ int,wenn nicht z.B. ein L angehängtwird, um das Literal als long zuklassifizieren.
5.3 Auswertung von Ausdrücken 30. Jan. 2018
Felix Brandt, Harald Räcke 94/596
![Page 41: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/41.jpg)
Beispiel: 2 + x * (z - d)
+
2 *
x ( )
–
z d
2, intval
-3, intvar
5, intvar
7, intvar-2, int
val
+
2 *
x ( )
–
z d
-3x 7d 5z
Punkt geht vor Strichrechnung.
Ganzahlliterale sind vom Typ int,wenn nicht z.B. ein L angehängtwird, um das Literal als long zuklassifizieren.
5.3 Auswertung von Ausdrücken 30. Jan. 2018
Felix Brandt, Harald Räcke 94/596
![Page 42: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/42.jpg)
Beispiel: 2 + x * (z - d)
+
2 *
x ( )
–
z d
2, intval
-3, intvar
5, intvar
7, intvar-2, int
val
+
2 *
x ( )
–
z d
-3x 7d 5z
Punkt geht vor Strichrechnung.
Ganzahlliterale sind vom Typ int,wenn nicht z.B. ein L angehängtwird, um das Literal als long zuklassifizieren.
5.3 Auswertung von Ausdrücken 30. Jan. 2018
Felix Brandt, Harald Räcke 94/596
![Page 43: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/43.jpg)
Beispiel: 2 + x * (z - d)
+
2 *
x ( )
–
z d
2, intval
-3, intvar
5, intvar
7, intvar-2, int
val
-2, intval
+
2 *
x ( )
–
z d
-3x 7d 5z
Punkt geht vor Strichrechnung.
Ganzahlliterale sind vom Typ int,wenn nicht z.B. ein L angehängtwird, um das Literal als long zuklassifizieren.
5.3 Auswertung von Ausdrücken 30. Jan. 2018
Felix Brandt, Harald Räcke 94/596
![Page 44: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/44.jpg)
Beispiel: 2 + x * (z - d)
+
2 *
x ( )
–
z d
2, intval
-3, intvar
5, intvar
7, intvar-2, int
val
-2, intval
+
2 *
x ( )
–
z d
-3x 7d 5z
Punkt geht vor Strichrechnung.
Ganzahlliterale sind vom Typ int,wenn nicht z.B. ein L angehängtwird, um das Literal als long zuklassifizieren.
5.3 Auswertung von Ausdrücken 30. Jan. 2018
Felix Brandt, Harald Räcke 94/596
![Page 45: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/45.jpg)
Beispiel: 2 + x * (z - d)
+
2 *
x ( )
–
z d
2, intval
-3, intvar
5, intvar
7, intvar-2, int
val
-2, intval
6, intval
+
2 *
x ( )
–
z d
-3x 7d 5z
Punkt geht vor Strichrechnung.
Ganzahlliterale sind vom Typ int,wenn nicht z.B. ein L angehängtwird, um das Literal als long zuklassifizieren.
5.3 Auswertung von Ausdrücken 30. Jan. 2018
Felix Brandt, Harald Räcke 94/596
![Page 46: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/46.jpg)
Beispiel: 2 + x * (z - d)
+
2 *
x ( )
–
z d
2, intval
-3, intvar
5, intvar
7, intvar-2, int
val
-2, intval
6, intval
+
2 *
x ( )
–
z d
-3x 7d 5z
Punkt geht vor Strichrechnung.
Ganzahlliterale sind vom Typ int,wenn nicht z.B. ein L angehängtwird, um das Literal als long zuklassifizieren.
5.3 Auswertung von Ausdrücken 30. Jan. 2018
Felix Brandt, Harald Räcke 94/596
![Page 47: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/47.jpg)
Beispiel: 2 + x * (z - d)
+
2 *
x ( )
–
z d
2, intval
-3, intvar
5, intvar
7, intvar-2, int
val
-2, intval
6, intval
8, intval
+
2 *
x ( )
–
z d
-3x 7d 5z
Punkt geht vor Strichrechnung.
Ganzahlliterale sind vom Typ int,wenn nicht z.B. ein L angehängtwird, um das Literal als long zuklassifizieren.
5.3 Auswertung von Ausdrücken 30. Jan. 2018
Felix Brandt, Harald Räcke 94/596
![Page 48: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/48.jpg)
Beispiel: a = b = c = d = 0
a = b = c = d = 0a = b = c = d = 0
Das funktioniert nur, da der Zuwei-sungsoperator rechtsassoziativ ist.
5.3 Auswertung von Ausdrücken 30. Jan. 2018
Felix Brandt, Harald Räcke 95/596
![Page 49: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/49.jpg)
Beispiel: a = b = c = d = 0
a = b = c = d = 0a = b = c = d = 0
Das funktioniert nur, da der Zuwei-sungsoperator rechtsassoziativ ist.
5.3 Auswertung von Ausdrücken 30. Jan. 2018
Felix Brandt, Harald Räcke 95/596
![Page 50: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/50.jpg)
Beispiel: a = b = c = d = 0
a = b = c = d = 0a = b = c = d = 0
Das funktioniert nur, da der Zuwei-sungsoperator rechtsassoziativ ist.
5.3 Auswertung von Ausdrücken 30. Jan. 2018
Felix Brandt, Harald Räcke 95/596
![Page 51: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/51.jpg)
Beispiel: a = b = c = d = 0
a = b = c = =
d 0
a = b = c = =
d 0
Das funktioniert nur, da der Zuwei-sungsoperator rechtsassoziativ ist.
5.3 Auswertung von Ausdrücken 30. Jan. 2018
Felix Brandt, Harald Räcke 95/596
![Page 52: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/52.jpg)
Beispiel: a = b = c = d = 0
a = b = c = =
d 0
a = b = c = =
d 0
Das funktioniert nur, da der Zuwei-sungsoperator rechtsassoziativ ist.
5.3 Auswertung von Ausdrücken 30. Jan. 2018
Felix Brandt, Harald Räcke 95/596
![Page 53: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/53.jpg)
Beispiel: a = b = c = d = 0
a = b = =
c =
d 0
a = b = =
c =
d 0
Das funktioniert nur, da der Zuwei-sungsoperator rechtsassoziativ ist.
5.3 Auswertung von Ausdrücken 30. Jan. 2018
Felix Brandt, Harald Räcke 95/596
![Page 54: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/54.jpg)
Beispiel: a = b = c = d = 0
a = b = =
c =
d 0
a = b = =
c =
d 0
Das funktioniert nur, da der Zuwei-sungsoperator rechtsassoziativ ist.
5.3 Auswertung von Ausdrücken 30. Jan. 2018
Felix Brandt, Harald Räcke 95/596
![Page 55: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/55.jpg)
Beispiel: a = b = c = d = 0
a = =
b =
c =
d 0
a = =
b =
c =
d 0
Das funktioniert nur, da der Zuwei-sungsoperator rechtsassoziativ ist.
5.3 Auswertung von Ausdrücken 30. Jan. 2018
Felix Brandt, Harald Räcke 95/596
![Page 56: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/56.jpg)
Beispiel: a = b = c = d = 0
a = =
b =
c =
d 0
a = =
b =
c =
d 0
Das funktioniert nur, da der Zuwei-sungsoperator rechtsassoziativ ist.
5.3 Auswertung von Ausdrücken 30. Jan. 2018
Felix Brandt, Harald Räcke 95/596
![Page 57: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/57.jpg)
Beispiel: a = b = c = d = 0
=
a =
b =
c =
d 0
=
a =
b =
c =
d 0
Das funktioniert nur, da der Zuwei-sungsoperator rechtsassoziativ ist.
5.3 Auswertung von Ausdrücken 30. Jan. 2018
Felix Brandt, Harald Räcke 95/596
![Page 58: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/58.jpg)
Beispiel: a = b = c = d = 0
=
a =
b =
c =
d 0
=
a =
b =
c =
d 0
-3a 7b 5c 2d
Das funktioniert nur, da der Zuwei-sungsoperator rechtsassoziativ ist.
5.3 Auswertung von Ausdrücken 30. Jan. 2018
Felix Brandt, Harald Räcke 95/596
![Page 59: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/59.jpg)
Beispiel: a = b = c = d = 0
=
a =
b =
c =
d 0
=
a =
b =
c =
d 0
-3a 7b 5c 2d
Das funktioniert nur, da der Zuwei-sungsoperator rechtsassoziativ ist.
5.3 Auswertung von Ausdrücken 30. Jan. 2018
Felix Brandt, Harald Räcke 95/596
![Page 60: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/60.jpg)
Beispiel: a = b = c = d = 0
=
a =
b =
c =
d 0
-3, intvar
=
a =
b =
c =
d 0
-3a 7b 5c 2d
Das funktioniert nur, da der Zuwei-sungsoperator rechtsassoziativ ist.
5.3 Auswertung von Ausdrücken 30. Jan. 2018
Felix Brandt, Harald Räcke 95/596
![Page 61: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/61.jpg)
Beispiel: a = b = c = d = 0
=
a =
b =
c =
d 0
-3, intvar
=
a =
b =
c =
d 0
-3a 7b 5c 2d
Das funktioniert nur, da der Zuwei-sungsoperator rechtsassoziativ ist.
5.3 Auswertung von Ausdrücken 30. Jan. 2018
Felix Brandt, Harald Räcke 95/596
![Page 62: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/62.jpg)
Beispiel: a = b = c = d = 0
=
a =
b =
c =
d 0
-3, intvar
7, intvar
=
a =
b =
c =
d 0
-3a 7b 5c 2d
Das funktioniert nur, da der Zuwei-sungsoperator rechtsassoziativ ist.
5.3 Auswertung von Ausdrücken 30. Jan. 2018
Felix Brandt, Harald Räcke 95/596
![Page 63: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/63.jpg)
Beispiel: a = b = c = d = 0
=
a =
b =
c =
d 0
-3, intvar
7, intvar
=
a =
b =
c =
d 0
-3a 7b 5c 2d
Das funktioniert nur, da der Zuwei-sungsoperator rechtsassoziativ ist.
5.3 Auswertung von Ausdrücken 30. Jan. 2018
Felix Brandt, Harald Räcke 95/596
![Page 64: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/64.jpg)
Beispiel: a = b = c = d = 0
=
a =
b =
c =
d 0
-3, intvar
7, intvar
5, intvar
=
a =
b =
c =
d 0
-3a 7b 5c 2d
Das funktioniert nur, da der Zuwei-sungsoperator rechtsassoziativ ist.
5.3 Auswertung von Ausdrücken 30. Jan. 2018
Felix Brandt, Harald Räcke 95/596
![Page 65: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/65.jpg)
Beispiel: a = b = c = d = 0
=
a =
b =
c =
d 0
-3, intvar
7, intvar
5, intvar
=
a =
b =
c =
d 0
-3a 7b 5c 2d
Das funktioniert nur, da der Zuwei-sungsoperator rechtsassoziativ ist.
5.3 Auswertung von Ausdrücken 30. Jan. 2018
Felix Brandt, Harald Räcke 95/596
![Page 66: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/66.jpg)
Beispiel: a = b = c = d = 0
=
a =
b =
c =
d 0
-3, intvar
7, intvar
5, intvar
2, intvar
=
a =
b =
c =
d 0
-3a 7b 5c 2d
Das funktioniert nur, da der Zuwei-sungsoperator rechtsassoziativ ist.
5.3 Auswertung von Ausdrücken 30. Jan. 2018
Felix Brandt, Harald Räcke 95/596
![Page 67: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/67.jpg)
Beispiel: a = b = c = d = 0
=
a =
b =
c =
d 0
-3, intvar
7, intvar
5, intvar
2, intvar
=
a =
b =
c =
d 0
-3a 7b 5c 2d
Das funktioniert nur, da der Zuwei-sungsoperator rechtsassoziativ ist.
5.3 Auswertung von Ausdrücken 30. Jan. 2018
Felix Brandt, Harald Räcke 95/596
![Page 68: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/68.jpg)
Beispiel: a = b = c = d = 0
=
a =
b =
c =
d 0
-3, intvar
7, intvar
5, intvar
2, intvar
0, intval
=
a =
b =
c =
d 0
-3a 7b 5c 2d
Das funktioniert nur, da der Zuwei-sungsoperator rechtsassoziativ ist.
5.3 Auswertung von Ausdrücken 30. Jan. 2018
Felix Brandt, Harald Räcke 95/596
![Page 69: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/69.jpg)
Beispiel: a = b = c = d = 0
=
a =
b =
c =
d 0
-3, intvar
7, intvar
5, intvar
2, intvar
0, intval
=
a =
b =
c =
d 0
-3a 7b 5c 2d
Das funktioniert nur, da der Zuwei-sungsoperator rechtsassoziativ ist.
5.3 Auswertung von Ausdrücken 30. Jan. 2018
Felix Brandt, Harald Räcke 95/596
![Page 70: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/70.jpg)
Beispiel: a = b = c = d = 0
=
a =
b =
c =
d 0
-3, intvar
7, intvar
5, intvar
2, intvar
0, intval
0, intval
=
a =
b =
c =
d 0
-3a 7b 5c 0d
Das funktioniert nur, da der Zuwei-sungsoperator rechtsassoziativ ist.
5.3 Auswertung von Ausdrücken 30. Jan. 2018
Felix Brandt, Harald Räcke 95/596
![Page 71: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/71.jpg)
Beispiel: a = b = c = d = 0
=
a =
b =
c =
d 0
-3, intvar
7, intvar
5, intvar
2, intvar
0, intval
0, intval
=
a =
b =
c =
d 0
-3a 7b 5c 0d
Das funktioniert nur, da der Zuwei-sungsoperator rechtsassoziativ ist.
5.3 Auswertung von Ausdrücken 30. Jan. 2018
Felix Brandt, Harald Räcke 95/596
![Page 72: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/72.jpg)
Beispiel: a = b = c = d = 0
=
a =
b =
c =
d 0
-3, intvar
7, intvar
5, intvar
2, intvar
0, intval
0, intval
0, intval
=
a =
b =
c =
d 0
-3a 7b 0c 0d
Das funktioniert nur, da der Zuwei-sungsoperator rechtsassoziativ ist.
5.3 Auswertung von Ausdrücken 30. Jan. 2018
Felix Brandt, Harald Räcke 95/596
![Page 73: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/73.jpg)
Beispiel: a = b = c = d = 0
=
a =
b =
c =
d 0
-3, intvar
7, intvar
5, intvar
2, intvar
0, intval
0, intval
0, intval
=
a =
b =
c =
d 0
-3a 7b 0c 0d
Das funktioniert nur, da der Zuwei-sungsoperator rechtsassoziativ ist.
5.3 Auswertung von Ausdrücken 30. Jan. 2018
Felix Brandt, Harald Räcke 95/596
![Page 74: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/74.jpg)
Beispiel: a = b = c = d = 0
=
a =
b =
c =
d 0
-3, intvar
7, intvar
5, intvar
2, intvar
0, intval
0, intval
0, intval
0, intval
=
a =
b =
c =
d 0
-3a 0b 0c 0d
Das funktioniert nur, da der Zuwei-sungsoperator rechtsassoziativ ist.
5.3 Auswertung von Ausdrücken 30. Jan. 2018
Felix Brandt, Harald Räcke 95/596
![Page 75: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/75.jpg)
Beispiel: a = b = c = d = 0
=
a =
b =
c =
d 0
-3, intvar
7, intvar
5, intvar
2, intvar
0, intval
0, intval
0, intval
0, intval
=
a =
b =
c =
d 0
-3a 0b 0c 0d
Das funktioniert nur, da der Zuwei-sungsoperator rechtsassoziativ ist.
5.3 Auswertung von Ausdrücken 30. Jan. 2018
Felix Brandt, Harald Räcke 95/596
![Page 76: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/76.jpg)
Beispiel: a = b = c = d = 0
=
a =
b =
c =
d 0
-3, intvar
7, intvar
5, intvar
2, intvar
0, intval
0, intval
0, intval
0, intval
0, intval
=
a =
b =
c =
d 0
0a 0b 0c 0d
Das funktioniert nur, da der Zuwei-sungsoperator rechtsassoziativ ist.
5.3 Auswertung von Ausdrücken 30. Jan. 2018
Felix Brandt, Harald Räcke 95/596
![Page 77: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/77.jpg)
Beispiel: a != 0 && b/a < 10
a != 0 && b / a < 10a != 0 && b / a < 10
Die vollständige Auswertung der Operan-den würde hier zu einem Laufzeitfehlerführen (Division durch Null).Mit Kurzschlussauswertung ist alles ok.
5.3 Auswertung von Ausdrücken 30. Jan. 2018
Felix Brandt, Harald Räcke 96/596
![Page 78: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/78.jpg)
Beispiel: a != 0 && b/a < 10
a != 0 && b / a < 10a != 0 && b / a < 10
Die vollständige Auswertung der Operan-den würde hier zu einem Laufzeitfehlerführen (Division durch Null).Mit Kurzschlussauswertung ist alles ok.
5.3 Auswertung von Ausdrücken 30. Jan. 2018
Felix Brandt, Harald Räcke 96/596
![Page 79: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/79.jpg)
Beispiel: a != 0 && b/a < 10
a != 0 && b / a < 10a != 0 && b / a < 10
Die vollständige Auswertung der Operan-den würde hier zu einem Laufzeitfehlerführen (Division durch Null).Mit Kurzschlussauswertung ist alles ok.
5.3 Auswertung von Ausdrücken 30. Jan. 2018
Felix Brandt, Harald Räcke 96/596
![Page 80: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/80.jpg)
Beispiel: a != 0 && b/a < 10
a != 0 && /
b a
< 10a != 0 && /
b a
< 10
Die vollständige Auswertung der Operan-den würde hier zu einem Laufzeitfehlerführen (Division durch Null).Mit Kurzschlussauswertung ist alles ok.
5.3 Auswertung von Ausdrücken 30. Jan. 2018
Felix Brandt, Harald Räcke 96/596
![Page 81: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/81.jpg)
Beispiel: a != 0 && b/a < 10
a != 0 && /
b a
< 10a != 0 && /
b a
< 10
Die vollständige Auswertung der Operan-den würde hier zu einem Laufzeitfehlerführen (Division durch Null).Mit Kurzschlussauswertung ist alles ok.
5.3 Auswertung von Ausdrücken 30. Jan. 2018
Felix Brandt, Harald Räcke 96/596
![Page 82: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/82.jpg)
Beispiel: a != 0 && b/a < 10
a != 0 && <
/
b a
10
a != 0 && <
/
b a
10
Die vollständige Auswertung der Operan-den würde hier zu einem Laufzeitfehlerführen (Division durch Null).Mit Kurzschlussauswertung ist alles ok.
5.3 Auswertung von Ausdrücken 30. Jan. 2018
Felix Brandt, Harald Räcke 96/596
![Page 83: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/83.jpg)
Beispiel: a != 0 && b/a < 10
a != 0 && <
/
b a
10
a != 0 && <
/
b a
10
Die vollständige Auswertung der Operan-den würde hier zu einem Laufzeitfehlerführen (Division durch Null).Mit Kurzschlussauswertung ist alles ok.
5.3 Auswertung von Ausdrücken 30. Jan. 2018
Felix Brandt, Harald Räcke 96/596
![Page 84: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/84.jpg)
Beispiel: a != 0 && b/a < 10
!=
a 0
&& <
/
b a
10
!=
a 0
&& <
/
b a
10
Die vollständige Auswertung der Operan-den würde hier zu einem Laufzeitfehlerführen (Division durch Null).Mit Kurzschlussauswertung ist alles ok.
5.3 Auswertung von Ausdrücken 30. Jan. 2018
Felix Brandt, Harald Räcke 96/596
![Page 85: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/85.jpg)
Beispiel: a != 0 && b/a < 10
!=
a 0
&& <
/
b a
10
!=
a 0
&& <
/
b a
10
Die vollständige Auswertung der Operan-den würde hier zu einem Laufzeitfehlerführen (Division durch Null).Mit Kurzschlussauswertung ist alles ok.
5.3 Auswertung von Ausdrücken 30. Jan. 2018
Felix Brandt, Harald Räcke 96/596
![Page 86: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/86.jpg)
Beispiel: a != 0 && b/a < 10
&&
!=
a 0
<
/
b a
10
&&
!=
a 0
<
/
b a
10
Die vollständige Auswertung der Operan-den würde hier zu einem Laufzeitfehlerführen (Division durch Null).Mit Kurzschlussauswertung ist alles ok.
5.3 Auswertung von Ausdrücken 30. Jan. 2018
Felix Brandt, Harald Räcke 96/596
![Page 87: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/87.jpg)
Beispiel: a != 0 && b/a < 10
&&
!=
a 0
<
/
b a
10
&&
!=
a 0
<
/
b a
10
0a 4b
Die vollständige Auswertung der Operan-den würde hier zu einem Laufzeitfehlerführen (Division durch Null).Mit Kurzschlussauswertung ist alles ok.
5.3 Auswertung von Ausdrücken 30. Jan. 2018
Felix Brandt, Harald Räcke 96/596
![Page 88: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/88.jpg)
Beispiel: a != 0 && b/a < 10
&&
!=
a 0
<
/
b a
10
&&
!=
a 0
<
/
b a
10
0a 4b
Die vollständige Auswertung der Operan-den würde hier zu einem Laufzeitfehlerführen (Division durch Null).Mit Kurzschlussauswertung ist alles ok.
5.3 Auswertung von Ausdrücken 30. Jan. 2018
Felix Brandt, Harald Räcke 96/596
![Page 89: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/89.jpg)
Beispiel: a != 0 && b/a < 10
&&
!=
a 0
<
/
b a
100, intvar
&&
!=
a 0
<
/
b a
10
0a 4b
Die vollständige Auswertung der Operan-den würde hier zu einem Laufzeitfehlerführen (Division durch Null).Mit Kurzschlussauswertung ist alles ok.
5.3 Auswertung von Ausdrücken 30. Jan. 2018
Felix Brandt, Harald Räcke 96/596
![Page 90: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/90.jpg)
Beispiel: a != 0 && b/a < 10
&&
!=
a 0
<
/
b a
100, intvar
&&
!=
a 0
<
/
b a
10
0a 4b
Die vollständige Auswertung der Operan-den würde hier zu einem Laufzeitfehlerführen (Division durch Null).Mit Kurzschlussauswertung ist alles ok.
5.3 Auswertung von Ausdrücken 30. Jan. 2018
Felix Brandt, Harald Räcke 96/596
![Page 91: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/91.jpg)
Beispiel: a != 0 && b/a < 10
&&
!=
a 0
<
/
b a
100, intvar
0, intval
&&
!=
a 0
<
/
b a
10
0a 4b
Die vollständige Auswertung der Operan-den würde hier zu einem Laufzeitfehlerführen (Division durch Null).Mit Kurzschlussauswertung ist alles ok.
5.3 Auswertung von Ausdrücken 30. Jan. 2018
Felix Brandt, Harald Räcke 96/596
![Page 92: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/92.jpg)
Beispiel: a != 0 && b/a < 10
&&
!=
a 0
<
/
b a
100, intvar
0, intval
&&
!=
a 0
<
/
b a
10
0a 4b
Die vollständige Auswertung der Operan-den würde hier zu einem Laufzeitfehlerführen (Division durch Null).Mit Kurzschlussauswertung ist alles ok.
5.3 Auswertung von Ausdrücken 30. Jan. 2018
Felix Brandt, Harald Räcke 96/596
![Page 93: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/93.jpg)
Beispiel: a != 0 && b/a < 10
&&
!=
a 0
<
/
b a
100, intvar
0, intval
false, booleanval
&&
!=
a 0
<
/
b a
10
0a 4b
Die vollständige Auswertung der Operan-den würde hier zu einem Laufzeitfehlerführen (Division durch Null).Mit Kurzschlussauswertung ist alles ok.
5.3 Auswertung von Ausdrücken 30. Jan. 2018
Felix Brandt, Harald Räcke 96/596
![Page 94: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/94.jpg)
Beispiel: a != 0 && b/a < 10
&&
!=
a 0
<
/
b a
100, intvar
0, intval
false, booleanval
&&
!=
a 0
<
/
b a
10
0a 4b
Die vollständige Auswertung der Operan-den würde hier zu einem Laufzeitfehlerführen (Division durch Null).Mit Kurzschlussauswertung ist alles ok.
5.3 Auswertung von Ausdrücken 30. Jan. 2018
Felix Brandt, Harald Räcke 96/596
![Page 95: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/95.jpg)
Beispiel: a != 0 && b/a < 10
&&
!=
a 0
<
/
b a
100, intvar
0, intval
false, booleanval
false, booleanval
&&
!=
a 0
<
/
b a
10
0a 4b
Die vollständige Auswertung der Operan-den würde hier zu einem Laufzeitfehlerführen (Division durch Null).Mit Kurzschlussauswertung ist alles ok.
5.3 Auswertung von Ausdrücken 30. Jan. 2018
Felix Brandt, Harald Räcke 96/596
![Page 96: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/96.jpg)
Beispiel: y = x + ++x
y = x + ++ xy = x + ++ x
In C ist die Reihenfolge der Auswertung von Un-terausdrücken nicht definiert. Auf einem sequenti-ellen Rechner hängt die Reihenfolge vom Compilerab und in diesem Beispiel könnte dies das Resultat9 oder 10 ergeben.
Auf einem Parallelrechner können Teilausdrückemanchmal auch parallel ausgewertet werden, waszu desaströsen Konsequenzen führen kann, fallsbeide Teilausdrücke eine Variable enthalten, diedurch einen Seiteneffekt verändert wird.
5.3 Auswertung von Ausdrücken 30. Jan. 2018
Felix Brandt, Harald Räcke 97/596
![Page 97: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/97.jpg)
Beispiel: y = x + ++x
y = x + ++ xy = x + ++ x
In C ist die Reihenfolge der Auswertung von Un-terausdrücken nicht definiert. Auf einem sequenti-ellen Rechner hängt die Reihenfolge vom Compilerab und in diesem Beispiel könnte dies das Resultat9 oder 10 ergeben.
Auf einem Parallelrechner können Teilausdrückemanchmal auch parallel ausgewertet werden, waszu desaströsen Konsequenzen führen kann, fallsbeide Teilausdrücke eine Variable enthalten, diedurch einen Seiteneffekt verändert wird.
5.3 Auswertung von Ausdrücken 30. Jan. 2018
Felix Brandt, Harald Räcke 97/596
![Page 98: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/98.jpg)
Beispiel: y = x + ++x
y = x + ++ xy = x + ++ x
In C ist die Reihenfolge der Auswertung von Un-terausdrücken nicht definiert. Auf einem sequenti-ellen Rechner hängt die Reihenfolge vom Compilerab und in diesem Beispiel könnte dies das Resultat9 oder 10 ergeben.
Auf einem Parallelrechner können Teilausdrückemanchmal auch parallel ausgewertet werden, waszu desaströsen Konsequenzen führen kann, fallsbeide Teilausdrücke eine Variable enthalten, diedurch einen Seiteneffekt verändert wird.
5.3 Auswertung von Ausdrücken 30. Jan. 2018
Felix Brandt, Harald Räcke 97/596
![Page 99: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/99.jpg)
Beispiel: y = x + ++x
y = x + ++
x
y = x + ++
x
In C ist die Reihenfolge der Auswertung von Un-terausdrücken nicht definiert. Auf einem sequenti-ellen Rechner hängt die Reihenfolge vom Compilerab und in diesem Beispiel könnte dies das Resultat9 oder 10 ergeben.
Auf einem Parallelrechner können Teilausdrückemanchmal auch parallel ausgewertet werden, waszu desaströsen Konsequenzen führen kann, fallsbeide Teilausdrücke eine Variable enthalten, diedurch einen Seiteneffekt verändert wird.
5.3 Auswertung von Ausdrücken 30. Jan. 2018
Felix Brandt, Harald Räcke 97/596
![Page 100: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/100.jpg)
Beispiel: y = x + ++x
y = x + ++
x
y = x + ++
x
In C ist die Reihenfolge der Auswertung von Un-terausdrücken nicht definiert. Auf einem sequenti-ellen Rechner hängt die Reihenfolge vom Compilerab und in diesem Beispiel könnte dies das Resultat9 oder 10 ergeben.
Auf einem Parallelrechner können Teilausdrückemanchmal auch parallel ausgewertet werden, waszu desaströsen Konsequenzen führen kann, fallsbeide Teilausdrücke eine Variable enthalten, diedurch einen Seiteneffekt verändert wird.
5.3 Auswertung von Ausdrücken 30. Jan. 2018
Felix Brandt, Harald Räcke 97/596
![Page 101: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/101.jpg)
Beispiel: y = x + ++x
y = +
x ++
x
y = +
x ++
x
In C ist die Reihenfolge der Auswertung von Un-terausdrücken nicht definiert. Auf einem sequenti-ellen Rechner hängt die Reihenfolge vom Compilerab und in diesem Beispiel könnte dies das Resultat9 oder 10 ergeben.
Auf einem Parallelrechner können Teilausdrückemanchmal auch parallel ausgewertet werden, waszu desaströsen Konsequenzen führen kann, fallsbeide Teilausdrücke eine Variable enthalten, diedurch einen Seiteneffekt verändert wird.
5.3 Auswertung von Ausdrücken 30. Jan. 2018
Felix Brandt, Harald Räcke 97/596
![Page 102: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/102.jpg)
Beispiel: y = x + ++x
y = +
x ++
x
y = +
x ++
x
In C ist die Reihenfolge der Auswertung von Un-terausdrücken nicht definiert. Auf einem sequenti-ellen Rechner hängt die Reihenfolge vom Compilerab und in diesem Beispiel könnte dies das Resultat9 oder 10 ergeben.
Auf einem Parallelrechner können Teilausdrückemanchmal auch parallel ausgewertet werden, waszu desaströsen Konsequenzen führen kann, fallsbeide Teilausdrücke eine Variable enthalten, diedurch einen Seiteneffekt verändert wird.
5.3 Auswertung von Ausdrücken 30. Jan. 2018
Felix Brandt, Harald Räcke 97/596
![Page 103: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/103.jpg)
Beispiel: y = x + ++x
=
y +
x ++
x
=
y +
x ++
x
In C ist die Reihenfolge der Auswertung von Un-terausdrücken nicht definiert. Auf einem sequenti-ellen Rechner hängt die Reihenfolge vom Compilerab und in diesem Beispiel könnte dies das Resultat9 oder 10 ergeben.
Auf einem Parallelrechner können Teilausdrückemanchmal auch parallel ausgewertet werden, waszu desaströsen Konsequenzen führen kann, fallsbeide Teilausdrücke eine Variable enthalten, diedurch einen Seiteneffekt verändert wird.
5.3 Auswertung von Ausdrücken 30. Jan. 2018
Felix Brandt, Harald Räcke 97/596
![Page 104: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/104.jpg)
Beispiel: y = x + ++x
=
y +
x ++
x
=
y +
x ++
x
4x 0y
In C ist die Reihenfolge der Auswertung von Un-terausdrücken nicht definiert. Auf einem sequenti-ellen Rechner hängt die Reihenfolge vom Compilerab und in diesem Beispiel könnte dies das Resultat9 oder 10 ergeben.
Auf einem Parallelrechner können Teilausdrückemanchmal auch parallel ausgewertet werden, waszu desaströsen Konsequenzen führen kann, fallsbeide Teilausdrücke eine Variable enthalten, diedurch einen Seiteneffekt verändert wird.
5.3 Auswertung von Ausdrücken 30. Jan. 2018
Felix Brandt, Harald Räcke 97/596
![Page 105: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/105.jpg)
Beispiel: y = x + ++x
=
y +
x ++
x
=
y +
x ++
x
4x 0y
In C ist die Reihenfolge der Auswertung von Un-terausdrücken nicht definiert. Auf einem sequenti-ellen Rechner hängt die Reihenfolge vom Compilerab und in diesem Beispiel könnte dies das Resultat9 oder 10 ergeben.
Auf einem Parallelrechner können Teilausdrückemanchmal auch parallel ausgewertet werden, waszu desaströsen Konsequenzen führen kann, fallsbeide Teilausdrücke eine Variable enthalten, diedurch einen Seiteneffekt verändert wird.
5.3 Auswertung von Ausdrücken 30. Jan. 2018
Felix Brandt, Harald Räcke 97/596
![Page 106: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/106.jpg)
Beispiel: y = x + ++x
=
y +
x ++
x
0, intvar
=
y +
x ++
x
4x 0y
In C ist die Reihenfolge der Auswertung von Un-terausdrücken nicht definiert. Auf einem sequenti-ellen Rechner hängt die Reihenfolge vom Compilerab und in diesem Beispiel könnte dies das Resultat9 oder 10 ergeben.
Auf einem Parallelrechner können Teilausdrückemanchmal auch parallel ausgewertet werden, waszu desaströsen Konsequenzen führen kann, fallsbeide Teilausdrücke eine Variable enthalten, diedurch einen Seiteneffekt verändert wird.
5.3 Auswertung von Ausdrücken 30. Jan. 2018
Felix Brandt, Harald Räcke 97/596
![Page 107: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/107.jpg)
Beispiel: y = x + ++x
=
y +
x ++
x
0, intvar
=
y +
x ++
x
4x 0y
In C ist die Reihenfolge der Auswertung von Un-terausdrücken nicht definiert. Auf einem sequenti-ellen Rechner hängt die Reihenfolge vom Compilerab und in diesem Beispiel könnte dies das Resultat9 oder 10 ergeben.
Auf einem Parallelrechner können Teilausdrückemanchmal auch parallel ausgewertet werden, waszu desaströsen Konsequenzen führen kann, fallsbeide Teilausdrücke eine Variable enthalten, diedurch einen Seiteneffekt verändert wird.
5.3 Auswertung von Ausdrücken 30. Jan. 2018
Felix Brandt, Harald Räcke 97/596
![Page 108: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/108.jpg)
Beispiel: y = x + ++x
=
y +
x ++
x
0, intvar
4, intvar
=
y +
x ++
x
4x 0y
In C ist die Reihenfolge der Auswertung von Un-terausdrücken nicht definiert. Auf einem sequenti-ellen Rechner hängt die Reihenfolge vom Compilerab und in diesem Beispiel könnte dies das Resultat9 oder 10 ergeben.
Auf einem Parallelrechner können Teilausdrückemanchmal auch parallel ausgewertet werden, waszu desaströsen Konsequenzen führen kann, fallsbeide Teilausdrücke eine Variable enthalten, diedurch einen Seiteneffekt verändert wird.
5.3 Auswertung von Ausdrücken 30. Jan. 2018
Felix Brandt, Harald Räcke 97/596
![Page 109: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/109.jpg)
Beispiel: y = x + ++x
=
y +
x ++
x
0, intvar
4, intvar
=
y +
x ++
x
4x 0y
In C ist die Reihenfolge der Auswertung von Un-terausdrücken nicht definiert. Auf einem sequenti-ellen Rechner hängt die Reihenfolge vom Compilerab und in diesem Beispiel könnte dies das Resultat9 oder 10 ergeben.
Auf einem Parallelrechner können Teilausdrückemanchmal auch parallel ausgewertet werden, waszu desaströsen Konsequenzen führen kann, fallsbeide Teilausdrücke eine Variable enthalten, diedurch einen Seiteneffekt verändert wird.
5.3 Auswertung von Ausdrücken 30. Jan. 2018
Felix Brandt, Harald Räcke 97/596
![Page 110: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/110.jpg)
Beispiel: y = x + ++x
=
y +
x ++
x
0, intvar
4, intvar
4, intvar
=
y +
x ++
x
4x 0y
In C ist die Reihenfolge der Auswertung von Un-terausdrücken nicht definiert. Auf einem sequenti-ellen Rechner hängt die Reihenfolge vom Compilerab und in diesem Beispiel könnte dies das Resultat9 oder 10 ergeben.
Auf einem Parallelrechner können Teilausdrückemanchmal auch parallel ausgewertet werden, waszu desaströsen Konsequenzen führen kann, fallsbeide Teilausdrücke eine Variable enthalten, diedurch einen Seiteneffekt verändert wird.
5.3 Auswertung von Ausdrücken 30. Jan. 2018
Felix Brandt, Harald Räcke 97/596
![Page 111: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/111.jpg)
Beispiel: y = x + ++x
=
y +
x ++
x
0, intvar
4, intvar
4, intvar
=
y +
x ++
x
4x 0y
In C ist die Reihenfolge der Auswertung von Un-terausdrücken nicht definiert. Auf einem sequenti-ellen Rechner hängt die Reihenfolge vom Compilerab und in diesem Beispiel könnte dies das Resultat9 oder 10 ergeben.
Auf einem Parallelrechner können Teilausdrückemanchmal auch parallel ausgewertet werden, waszu desaströsen Konsequenzen führen kann, fallsbeide Teilausdrücke eine Variable enthalten, diedurch einen Seiteneffekt verändert wird.
5.3 Auswertung von Ausdrücken 30. Jan. 2018
Felix Brandt, Harald Räcke 97/596
![Page 112: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/112.jpg)
Beispiel: y = x + ++x
=
y +
x ++
x
0, intvar
4, intvar
4, intvar
5, intval
=
y +
x ++
x
5x 0y
In C ist die Reihenfolge der Auswertung von Un-terausdrücken nicht definiert. Auf einem sequenti-ellen Rechner hängt die Reihenfolge vom Compilerab und in diesem Beispiel könnte dies das Resultat9 oder 10 ergeben.
Auf einem Parallelrechner können Teilausdrückemanchmal auch parallel ausgewertet werden, waszu desaströsen Konsequenzen führen kann, fallsbeide Teilausdrücke eine Variable enthalten, diedurch einen Seiteneffekt verändert wird.
5.3 Auswertung von Ausdrücken 30. Jan. 2018
Felix Brandt, Harald Räcke 97/596
![Page 113: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/113.jpg)
Beispiel: y = x + ++x
=
y +
x ++
x
0, intvar
4, intvar
4, intvar
5, intval
=
y +
x ++
x
5x 0y
In C ist die Reihenfolge der Auswertung von Un-terausdrücken nicht definiert. Auf einem sequenti-ellen Rechner hängt die Reihenfolge vom Compilerab und in diesem Beispiel könnte dies das Resultat9 oder 10 ergeben.
Auf einem Parallelrechner können Teilausdrückemanchmal auch parallel ausgewertet werden, waszu desaströsen Konsequenzen führen kann, fallsbeide Teilausdrücke eine Variable enthalten, diedurch einen Seiteneffekt verändert wird.
5.3 Auswertung von Ausdrücken 30. Jan. 2018
Felix Brandt, Harald Räcke 97/596
![Page 114: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/114.jpg)
Beispiel: y = x + ++x
=
y +
x ++
x
0, intvar
4, intvar
4, intvar
5, intval
9, intval
=
y +
x ++
x
5x 0y
In C ist die Reihenfolge der Auswertung von Un-terausdrücken nicht definiert. Auf einem sequenti-ellen Rechner hängt die Reihenfolge vom Compilerab und in diesem Beispiel könnte dies das Resultat9 oder 10 ergeben.
Auf einem Parallelrechner können Teilausdrückemanchmal auch parallel ausgewertet werden, waszu desaströsen Konsequenzen führen kann, fallsbeide Teilausdrücke eine Variable enthalten, diedurch einen Seiteneffekt verändert wird.
5.3 Auswertung von Ausdrücken 30. Jan. 2018
Felix Brandt, Harald Räcke 97/596
![Page 115: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/115.jpg)
Beispiel: y = x + ++x
=
y +
x ++
x
0, intvar
4, intvar
4, intvar
5, intval
9, intval
=
y +
x ++
x
5x 0y
In C ist die Reihenfolge der Auswertung von Un-terausdrücken nicht definiert. Auf einem sequenti-ellen Rechner hängt die Reihenfolge vom Compilerab und in diesem Beispiel könnte dies das Resultat9 oder 10 ergeben.
Auf einem Parallelrechner können Teilausdrückemanchmal auch parallel ausgewertet werden, waszu desaströsen Konsequenzen führen kann, fallsbeide Teilausdrücke eine Variable enthalten, diedurch einen Seiteneffekt verändert wird.
5.3 Auswertung von Ausdrücken 30. Jan. 2018
Felix Brandt, Harald Räcke 97/596
![Page 116: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/116.jpg)
Beispiel: y = x + ++x
=
y +
x ++
x
0, intvar
4, intvar
4, intvar
5, intval
9, intval
9, intval
=
y +
x ++
x
5x 9y
In C ist die Reihenfolge der Auswertung von Un-terausdrücken nicht definiert. Auf einem sequenti-ellen Rechner hängt die Reihenfolge vom Compilerab und in diesem Beispiel könnte dies das Resultat9 oder 10 ergeben.
Auf einem Parallelrechner können Teilausdrückemanchmal auch parallel ausgewertet werden, waszu desaströsen Konsequenzen führen kann, fallsbeide Teilausdrücke eine Variable enthalten, diedurch einen Seiteneffekt verändert wird.
5.3 Auswertung von Ausdrücken 30. Jan. 2018
Felix Brandt, Harald Räcke 97/596
![Page 117: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/117.jpg)
Beispiel: y = x++ + x
y = x ++ + xy = x ++ + x
Der Postfix-Operator ändert die Variablenach dem der Wert des Teilausdrucks be-stimmt wurde.
Wenn die Variable im Ausdruck spä-ter nochmal ausgewertet wird, bekommtman den neuen Wert.
5.3 Auswertung von Ausdrücken 30. Jan. 2018
Felix Brandt, Harald Räcke 98/596
![Page 118: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/118.jpg)
Beispiel: y = x++ + x
y = x ++ + xy = x ++ + x
Der Postfix-Operator ändert die Variablenach dem der Wert des Teilausdrucks be-stimmt wurde.
Wenn die Variable im Ausdruck spä-ter nochmal ausgewertet wird, bekommtman den neuen Wert.
5.3 Auswertung von Ausdrücken 30. Jan. 2018
Felix Brandt, Harald Räcke 98/596
![Page 119: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/119.jpg)
Beispiel: y = x++ + x
y = x ++ + xy = x ++ + x
Der Postfix-Operator ändert die Variablenach dem der Wert des Teilausdrucks be-stimmt wurde.
Wenn die Variable im Ausdruck spä-ter nochmal ausgewertet wird, bekommtman den neuen Wert.
5.3 Auswertung von Ausdrücken 30. Jan. 2018
Felix Brandt, Harald Räcke 98/596
![Page 120: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/120.jpg)
Beispiel: y = x++ + x
y = ++
x
+ xy = ++
x
+ x
Der Postfix-Operator ändert die Variablenach dem der Wert des Teilausdrucks be-stimmt wurde.
Wenn die Variable im Ausdruck spä-ter nochmal ausgewertet wird, bekommtman den neuen Wert.
5.3 Auswertung von Ausdrücken 30. Jan. 2018
Felix Brandt, Harald Räcke 98/596
![Page 121: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/121.jpg)
Beispiel: y = x++ + x
y = ++
x
+ xy = ++
x
+ x
Der Postfix-Operator ändert die Variablenach dem der Wert des Teilausdrucks be-stimmt wurde.
Wenn die Variable im Ausdruck spä-ter nochmal ausgewertet wird, bekommtman den neuen Wert.
5.3 Auswertung von Ausdrücken 30. Jan. 2018
Felix Brandt, Harald Räcke 98/596
![Page 122: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/122.jpg)
Beispiel: y = x++ + x
y = +
++
x
x
y = +
++
x
x
Der Postfix-Operator ändert die Variablenach dem der Wert des Teilausdrucks be-stimmt wurde.
Wenn die Variable im Ausdruck spä-ter nochmal ausgewertet wird, bekommtman den neuen Wert.
5.3 Auswertung von Ausdrücken 30. Jan. 2018
Felix Brandt, Harald Räcke 98/596
![Page 123: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/123.jpg)
Beispiel: y = x++ + x
y = +
++
x
x
y = +
++
x
x
Der Postfix-Operator ändert die Variablenach dem der Wert des Teilausdrucks be-stimmt wurde.
Wenn die Variable im Ausdruck spä-ter nochmal ausgewertet wird, bekommtman den neuen Wert.
5.3 Auswertung von Ausdrücken 30. Jan. 2018
Felix Brandt, Harald Räcke 98/596
![Page 124: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/124.jpg)
Beispiel: y = x++ + x
=
y +
++
x
x
=
y +
++
x
x
Der Postfix-Operator ändert die Variablenach dem der Wert des Teilausdrucks be-stimmt wurde.
Wenn die Variable im Ausdruck spä-ter nochmal ausgewertet wird, bekommtman den neuen Wert.
5.3 Auswertung von Ausdrücken 30. Jan. 2018
Felix Brandt, Harald Räcke 98/596
![Page 125: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/125.jpg)
Beispiel: y = x++ + x
=
y +
++
x
x
=
y +
++
x
x
4x 0y
Der Postfix-Operator ändert die Variablenach dem der Wert des Teilausdrucks be-stimmt wurde.
Wenn die Variable im Ausdruck spä-ter nochmal ausgewertet wird, bekommtman den neuen Wert.
5.3 Auswertung von Ausdrücken 30. Jan. 2018
Felix Brandt, Harald Räcke 98/596
![Page 126: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/126.jpg)
Beispiel: y = x++ + x
=
y +
++
x
x
=
y +
++
x
x
4x 0y
Der Postfix-Operator ändert die Variablenach dem der Wert des Teilausdrucks be-stimmt wurde.
Wenn die Variable im Ausdruck spä-ter nochmal ausgewertet wird, bekommtman den neuen Wert.
5.3 Auswertung von Ausdrücken 30. Jan. 2018
Felix Brandt, Harald Räcke 98/596
![Page 127: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/127.jpg)
Beispiel: y = x++ + x
=
y +
++
x
x
0, intvar
=
y +
++
x
x
4x 0y
Der Postfix-Operator ändert die Variablenach dem der Wert des Teilausdrucks be-stimmt wurde.
Wenn die Variable im Ausdruck spä-ter nochmal ausgewertet wird, bekommtman den neuen Wert.
5.3 Auswertung von Ausdrücken 30. Jan. 2018
Felix Brandt, Harald Räcke 98/596
![Page 128: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/128.jpg)
Beispiel: y = x++ + x
=
y +
++
x
x
0, intvar
=
y +
++
x
x
4x 0y
Der Postfix-Operator ändert die Variablenach dem der Wert des Teilausdrucks be-stimmt wurde.
Wenn die Variable im Ausdruck spä-ter nochmal ausgewertet wird, bekommtman den neuen Wert.
5.3 Auswertung von Ausdrücken 30. Jan. 2018
Felix Brandt, Harald Räcke 98/596
![Page 129: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/129.jpg)
Beispiel: y = x++ + x
=
y +
++
x
x
0, intvar
4, intvar
=
y +
++
x
x
4x 0y
Der Postfix-Operator ändert die Variablenach dem der Wert des Teilausdrucks be-stimmt wurde.
Wenn die Variable im Ausdruck spä-ter nochmal ausgewertet wird, bekommtman den neuen Wert.
5.3 Auswertung von Ausdrücken 30. Jan. 2018
Felix Brandt, Harald Räcke 98/596
![Page 130: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/130.jpg)
Beispiel: y = x++ + x
=
y +
++
x
x
0, intvar
4, intvar
=
y +
++
x
x
4x 0y
Der Postfix-Operator ändert die Variablenach dem der Wert des Teilausdrucks be-stimmt wurde.
Wenn die Variable im Ausdruck spä-ter nochmal ausgewertet wird, bekommtman den neuen Wert.
5.3 Auswertung von Ausdrücken 30. Jan. 2018
Felix Brandt, Harald Räcke 98/596
![Page 131: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/131.jpg)
Beispiel: y = x++ + x
=
y +
++
x
x
0, intvar
4, intvar
4, intval
=
y +
++
x
x
5x 0y
Der Postfix-Operator ändert die Variablenach dem der Wert des Teilausdrucks be-stimmt wurde.
Wenn die Variable im Ausdruck spä-ter nochmal ausgewertet wird, bekommtman den neuen Wert.
5.3 Auswertung von Ausdrücken 30. Jan. 2018
Felix Brandt, Harald Räcke 98/596
![Page 132: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/132.jpg)
Beispiel: y = x++ + x
=
y +
++
x
x
0, intvar
4, intvar
4, intval
=
y +
++
x
x
5x 0y
Der Postfix-Operator ändert die Variablenach dem der Wert des Teilausdrucks be-stimmt wurde.
Wenn die Variable im Ausdruck spä-ter nochmal ausgewertet wird, bekommtman den neuen Wert.
5.3 Auswertung von Ausdrücken 30. Jan. 2018
Felix Brandt, Harald Räcke 98/596
![Page 133: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/133.jpg)
Beispiel: y = x++ + x
=
y +
++
x
x
0, intvar
4, intvar
4, intval
5, intvar
=
y +
++
x
x
5x 0y
Der Postfix-Operator ändert die Variablenach dem der Wert des Teilausdrucks be-stimmt wurde.
Wenn die Variable im Ausdruck spä-ter nochmal ausgewertet wird, bekommtman den neuen Wert.
5.3 Auswertung von Ausdrücken 30. Jan. 2018
Felix Brandt, Harald Räcke 98/596
![Page 134: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/134.jpg)
Beispiel: y = x++ + x
=
y +
++
x
x
0, intvar
4, intvar
4, intval
5, intvar
=
y +
++
x
x
5x 0y
Der Postfix-Operator ändert die Variablenach dem der Wert des Teilausdrucks be-stimmt wurde.
Wenn die Variable im Ausdruck spä-ter nochmal ausgewertet wird, bekommtman den neuen Wert.
5.3 Auswertung von Ausdrücken 30. Jan. 2018
Felix Brandt, Harald Räcke 98/596
![Page 135: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/135.jpg)
Beispiel: y = x++ + x
=
y +
++
x
x
0, intvar
4, intvar
4, intval
5, intvar
9, intval
=
y +
++
x
x
5x 0y
Der Postfix-Operator ändert die Variablenach dem der Wert des Teilausdrucks be-stimmt wurde.
Wenn die Variable im Ausdruck spä-ter nochmal ausgewertet wird, bekommtman den neuen Wert.
5.3 Auswertung von Ausdrücken 30. Jan. 2018
Felix Brandt, Harald Räcke 98/596
![Page 136: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/136.jpg)
Beispiel: y = x++ + x
=
y +
++
x
x
0, intvar
4, intvar
4, intval
5, intvar
9, intval
=
y +
++
x
x
5x 0y
Der Postfix-Operator ändert die Variablenach dem der Wert des Teilausdrucks be-stimmt wurde.
Wenn die Variable im Ausdruck spä-ter nochmal ausgewertet wird, bekommtman den neuen Wert.
5.3 Auswertung von Ausdrücken 30. Jan. 2018
Felix Brandt, Harald Räcke 98/596
![Page 137: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/137.jpg)
Beispiel: y = x++ + x
=
y +
++
x
x
0, intvar
4, intvar
4, intval
5, intvar
9, intval
9, intval
=
y +
++
x
x
5x 9y
Der Postfix-Operator ändert die Variablenach dem der Wert des Teilausdrucks be-stimmt wurde.
Wenn die Variable im Ausdruck spä-ter nochmal ausgewertet wird, bekommtman den neuen Wert.
5.3 Auswertung von Ausdrücken 30. Jan. 2018
Felix Brandt, Harald Räcke 98/596
![Page 138: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/138.jpg)
Impliziter Typecast
Wenn ein Ausdruck vom TypA an einer Stelle verwendet wird, wo
ein Ausdruck vom TypB erforderlich ist, wird
ñ entweder der Ausdruck vom TypA in einen Ausdruck vom
TypB gecasted (impliziter Typecast),
ñ oder ein Compilerfehler erzeugt, falls dieser Cast nicht
(automatisch) erlaubt ist.
Beispiel: Zuweisung
long x = 5;int y = 3;x = y; // impliziter Cast von int nach long
5.3 Auswertung von Ausdrücken 30. Jan. 2018
Felix Brandt, Harald Räcke 99/596
![Page 139: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/139.jpg)
Erlaubte Implizite Typecasts – Numerische Typen
byte
short
int
long
float
double
char
ganze Zahlen, char
Gleitkommazahlen
Keine Typumwandlungzwischen boolean undZahltypen (wederimplizit noch explizit).
Konvertierung von long nach double oder von int nach float
kann Information verlieren wird aber automatisch durchgeführt.
Man nennt diese Art der Casts,widening conversions, da derWertebereich im Allgemeinenerweitert wird.
![Page 140: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/140.jpg)
Welcher Typ wird benötigt?Operatoren sind üblicherweise überladen, d.h. ein Symbol (+, -,
. . . ) steht in Abhängigkeit der Parameter (Argumente) für
unterschiedliche Funktionen.
+ : int -→ int
+ : long -→ long
+ : float -→ float
+ : double -→ double
+ : int× int -→ int
+ : long× long -→ long
+ : float× float -→ float
+ : double× double -→ double
+ : String× String -→ String
Der Compiler muss in der Lage sein während der Compilierung
die richtige Funktion zu bestimmen.
Es gibt keinen +-Operator für short,byte, char.
Der +-Operator für Strings macht Konka-tenation.
![Page 141: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/141.jpg)
Impliziter Typecast
Der Compiler wertet nur die Typen des Ausdrucksbaums aus.
ñ Für jeden inneren Knoten wählt er dann die geeignete
Funktion (z.B. + : long× long -→ long falls ein +-Knoten
zwei long-Argumente erhält).
ñ Falls keine passende Funktion gefunden wird, versucht der
Compiler durch implizite Typecasts die Operanden an eine
Funktion anzupassen.
ñ Dies geschieht auch für selbstgeschriebene Funktionen (z.B.
min(int a, int b) und min(long a, long b)).
ñ Der Compiler nimmt die Funktion mit der speziellsten
Signatur.
5.3 Auswertung von Ausdrücken 30. Jan. 2018
Felix Brandt, Harald Räcke 102/596
![Page 142: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/142.jpg)
Speziellste Signatur
1. Der Compiler bestimmt zunächst alle Funktionen, diepassen könnten (d.h. die vorliegenden Typen könnendurch widening conversions in die Argumenttypen derFunktion umgewandelt werden).
2. Eine Funktion f1 ist spezifischer als eine andere f2, wenndie Argumenttypen von f1 auch für einen Aufruf von f2
benutzbar sind (z.B. min(int, long) spezifischer alsmin(long, long) aber nicht spezifischer als min(long,int)).Dieses definiert eine partielle Ordnung auf der Menge derFunktionen.
3. Unter den möglichen Funktionen (aus Schritt 1) wird einkleinste Element bzgl. dieser partiellen Ordnunggesucht. Falls genau ein kleinstes Element existiert, istdies die gesuchte Funtion. Andernfalls ist der Aufrufungültig. (Beachte: Rückgabetyp spielt fürFunktionsauswahl keine Rolle).
5.3 Auswertung von Ausdrücken 30. Jan. 2018
Felix Brandt, Harald Räcke 103/596
![Page 143: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/143.jpg)
Ordnungsrelationen
Relation �: TypA � TypB falls TypA nach TypB (implizit) gecasted
werden kann:
ñ reflexiv: T � Tñ transitiv: T1 � T2 ∧ T2 � T3 ⇒ T1 � T3
ñ antisymmetrisch: T1 � T2 ∧ T2 � T1 ⇒ T1 = T2
d.h., � definiert Halbordnung auf der Menge der Typen.
Relation �k: (T1, . . . , Tk) �k (T ′1, . . . , T ′k) falls Ti � T ′i für alle
i ∈ {1, . . . , k}:ñ reflexiv: T �k Tñ transitiv: T1 �k T2 ∧T2 �k T3 ⇒ T1 �k T3
ñ antisymmetrisch: T1 �k T2 ∧T2 �k T1 ⇒ T1 = T2
d.h., �k definiert Halbordnung auf Menge der k-Tupel von Typen
Wir betrachten Relation auf der Menge von Parametertupeln für die f implementiert ist. Aus Anti-symmetrie folgt, dass keine zwei Funktionen das gleiche k-Tupel an Parametern erwarten.
![Page 144: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/144.jpg)
Ordnungsrelationen
Relation �: TypA � TypB falls TypA nach TypB (implizit) gecasted
werden kann:
ñ reflexiv: T � Tñ transitiv: T1 � T2 ∧ T2 � T3 ⇒ T1 � T3
ñ antisymmetrisch: T1 � T2 ∧ T2 � T1 ⇒ T1 = T2
d.h., � definiert Halbordnung auf der Menge der Typen.
Relation �k: (T1, . . . , Tk) �k (T ′1, . . . , T ′k) falls Ti � T ′i für alle
i ∈ {1, . . . , k}:ñ reflexiv: T �k Tñ transitiv: T1 �k T2 ∧T2 �k T3 ⇒ T1 �k T3
ñ antisymmetrisch: T1 �k T2 ∧T2 �k T1 ⇒ T1 = T2
d.h., �k definiert Halbordnung auf Menge der k-Tupel von Typen
Wir betrachten Relation auf der Menge von Parametertupeln für die f implementiert ist. Aus Anti-symmetrie folgt, dass keine zwei Funktionen das gleiche k-Tupel an Parametern erwarten.
![Page 145: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/145.jpg)
f
T1 T2 Tk−1 Tk. . .
R1 f(T1)R2 f(T2)
...
R` f(T`)
T1, . . . ,T` sind k-Tupel von Typen für die eine Definition von fexistiert.
T = (T1, . . . , Tk) ist das k-tupel von Typen mit dem f aufgerufen
wird.
Menge aller möglichen Funktionen/Tupel:
M := {Ti|T �k Ti} .
Wähle kleinstes Element aus M falls M ein eindeutig kleinstes
Element besitzt (sonst Compilerfehler).
![Page 146: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/146.jpg)
f
T1 T2 Tk−1 Tk. . .
R1 f(T1)R2 f(T2)
...
R` f(T`)
T1, . . . ,T` sind k-Tupel von Typen für die eine Definition von fexistiert.
T = (T1, . . . , Tk) ist das k-tupel von Typen mit dem f aufgerufen
wird.
Menge aller möglichen Funktionen/Tupel:
M := {Ti|T �k Ti} .
Wähle kleinstes Element aus M falls M ein eindeutig kleinstes
Element besitzt (sonst Compilerfehler).
![Page 147: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/147.jpg)
f
T1 T2 Tk−1 Tk. . .
R1 f(T1)R2 f(T2)
...
R` f(T`)
T1, . . . ,T` sind k-Tupel von Typen für die eine Definition von fexistiert.
T = (T1, . . . , Tk) ist das k-tupel von Typen mit dem f aufgerufen
wird.
Menge aller möglichen Funktionen/Tupel:
M := {Ti|T �k Ti} .
Wähle kleinstes Element aus M falls M ein eindeutig kleinstes
Element besitzt (sonst Compilerfehler).
![Page 148: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/148.jpg)
Impliziter Typecast – Numerische Typen
Angenommen wir haben Funktionen
int min(int a, int b)
float min(float a, float b)
double min(double a, double b)
definiert.
1 long a = 7, b = 3;2 double d = min(a, b);
würde die Funktion float min(float a, float b) aufrufen.
5.3 Auswertung von Ausdrücken 30. Jan. 2018
Felix Brandt, Harald Räcke 106/596
![Page 149: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/149.jpg)
Impliziter Typecast
Bei Ausdrücken mit Seiteneffekten (Zuweisungen, ++ , - -) gelten
andere Regeln:
Beispiel: Zuweisungen
= : byte∗ × byte -→ byte
= : char∗ × char -→ char
= : short∗ × short -→ short
= : int∗ × int -→ int
= : long∗ × long -→ long
= : float∗ × float -→ float
= : double∗ × double -→ double
Es wird nur der Parameter konvertiert, der nicht dem Seiteneffekt
unterliegt.
5.3 Auswertung von Ausdrücken 30. Jan. 2018
Felix Brandt, Harald Räcke 107/596
![Page 150: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/150.jpg)
5.3 Auswertung von Ausdrücken
Der Funktionsaufrufoperator:
symbol name types L/R level
() Funktionsaufruf Funktionsname, * links 1
Wir modellieren den Funktionsaufrufoperator hier als einen Operator,der beliebig viele Argumente entgegennimmt. Das erste Argument istder Funktionsname, und die folgenden Argumente sind die Parameterder Funktion. Üblicherweise hat der Funktionsaufrufoperator nur zweiOperanden: den Funktionsnamen, und eine Argumentliste.
5.3 Auswertung von Ausdrücken 30. Jan. 2018
Felix Brandt, Harald Räcke 108/596
![Page 151: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/151.jpg)
Beispiel: x = min(a, min(a,b) + 4L)
x = min ( a , min ( a , b ) + 4L )x = min ( a , min ( a , b ) + 4L )
Achtung: Dieses ist eine sehr vereinfachte und teilweise inkorrekte Darstellung. Dereigentliche Prozess, der vom Funktionsnamen zu eigentlichen Funktion führt ist sehrkompliziert. function list ist auch kein Typ in Java.
![Page 152: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/152.jpg)
Beispiel: x = min(a, min(a,b) + 4L)
x = min ( a , min ( a , b ) + 4L )x = min ( a , min ( a , b ) + 4L )
Achtung: Dieses ist eine sehr vereinfachte und teilweise inkorrekte Darstellung. Dereigentliche Prozess, der vom Funktionsnamen zu eigentlichen Funktion führt ist sehrkompliziert. function list ist auch kein Typ in Java.
![Page 153: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/153.jpg)
Beispiel: x = min(a, min(a,b) + 4L)
x = min ( a , min ( a , b ) + 4L )x = min ( a , min ( a , b ) + 4L )
Achtung: Dieses ist eine sehr vereinfachte und teilweise inkorrekte Darstellung. Dereigentliche Prozess, der vom Funktionsnamen zu eigentlichen Funktion führt ist sehrkompliziert. function list ist auch kein Typ in Java.
![Page 154: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/154.jpg)
Beispiel: x = min(a, min(a,b) + 4L)
x = ( )
min a min ( a , b ) + 4L
x = ( )
min a min ( a , b ) + 4L
Achtung: Dieses ist eine sehr vereinfachte und teilweise inkorrekte Darstellung. Dereigentliche Prozess, der vom Funktionsnamen zu eigentlichen Funktion führt ist sehrkompliziert. function list ist auch kein Typ in Java.
![Page 155: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/155.jpg)
Beispiel: x = min(a, min(a,b) + 4L)
x = ( )
min a min ( a , b ) + 4L
x = ( )
min a min ( a , b ) + 4L
Achtung: Dieses ist eine sehr vereinfachte und teilweise inkorrekte Darstellung. Dereigentliche Prozess, der vom Funktionsnamen zu eigentlichen Funktion führt ist sehrkompliziert. function list ist auch kein Typ in Java.
![Page 156: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/156.jpg)
Beispiel: x = min(a, min(a,b) + 4L)
x = ( )
min a ( )
min a b
+ 4L
x = ( )
min a ( )
min a b
+ 4L
Achtung: Dieses ist eine sehr vereinfachte und teilweise inkorrekte Darstellung. Dereigentliche Prozess, der vom Funktionsnamen zu eigentlichen Funktion führt ist sehrkompliziert. function list ist auch kein Typ in Java.
![Page 157: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/157.jpg)
Beispiel: x = min(a, min(a,b) + 4L)
x = ( )
min a ( )
min a b
+ 4L
x = ( )
min a ( )
min a b
+ 4L
Achtung: Dieses ist eine sehr vereinfachte und teilweise inkorrekte Darstellung. Dereigentliche Prozess, der vom Funktionsnamen zu eigentlichen Funktion führt ist sehrkompliziert. function list ist auch kein Typ in Java.
![Page 158: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/158.jpg)
Beispiel: x = min(a, min(a,b) + 4L)
x = ( )
min a +
( )
min a b
4L
x = ( )
min a +
( )
min a b
4L
Achtung: Dieses ist eine sehr vereinfachte und teilweise inkorrekte Darstellung. Dereigentliche Prozess, der vom Funktionsnamen zu eigentlichen Funktion führt ist sehrkompliziert. function list ist auch kein Typ in Java.
![Page 159: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/159.jpg)
Beispiel: x = min(a, min(a,b) + 4L)
x = ( )
min a +
( )
min a b
4L
x = ( )
min a +
( )
min a b
4L
Achtung: Dieses ist eine sehr vereinfachte und teilweise inkorrekte Darstellung. Dereigentliche Prozess, der vom Funktionsnamen zu eigentlichen Funktion führt ist sehrkompliziert. function list ist auch kein Typ in Java.
![Page 160: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/160.jpg)
Beispiel: x = min(a, min(a,b) + 4L)
=
x ( )
min a +
( )
min a b
4L
=
x ( )
min a +
( )
min a b
4L
int min(int,int)float min(float,float)double min(double,double)
7long x 3int a 5int b
Achtung: Dieses ist eine sehr vereinfachte und teilweise inkorrekte Darstellung. Dereigentliche Prozess, der vom Funktionsnamen zu eigentlichen Funktion führt ist sehrkompliziert. function list ist auch kein Typ in Java.
![Page 161: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/161.jpg)
Beispiel: x = min(a, min(a,b) + 4L)
=
x ( )
min a +
( )
min a b
4L
=
x ( )
min a +
( )
min a b
4L
int min(int,int)float min(float,float)double min(double,double)
7long x 3int a 5int b
Achtung: Dieses ist eine sehr vereinfachte und teilweise inkorrekte Darstellung. Dereigentliche Prozess, der vom Funktionsnamen zu eigentlichen Funktion führt ist sehrkompliziert. function list ist auch kein Typ in Java.
![Page 162: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/162.jpg)
Beispiel: x = min(a, min(a,b) + 4L)
=
x ( )
min a +
( )
min a b
4L
7, longvar
=
x ( )
min a +
( )
min a b
4L
int min(int,int)float min(float,float)double min(double,double)
7long x 3int a 5int b
Achtung: Dieses ist eine sehr vereinfachte und teilweise inkorrekte Darstellung. Dereigentliche Prozess, der vom Funktionsnamen zu eigentlichen Funktion führt ist sehrkompliziert. function list ist auch kein Typ in Java.
![Page 163: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/163.jpg)
Beispiel: x = min(a, min(a,b) + 4L)
=
x ( )
min a +
( )
min a b
4L
7, longvar
=
x ( )
min a +
( )
min a b
4L
int min(int,int)float min(float,float)double min(double,double)
7long x 3int a 5int b
Achtung: Dieses ist eine sehr vereinfachte und teilweise inkorrekte Darstellung. Dereigentliche Prozess, der vom Funktionsnamen zu eigentlichen Funktion führt ist sehrkompliziert. function list ist auch kein Typ in Java.
![Page 164: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/164.jpg)
Beispiel: x = min(a, min(a,b) + 4L)
=
x ( )
min a +
( )
min a b
4L
7, longvar
◦, function list
=
x ( )
min a +
( )
min a b
4L
int min(int,int)float min(float,float)double min(double,double)
7long x 3int a 5int b
Achtung: Dieses ist eine sehr vereinfachte und teilweise inkorrekte Darstellung. Dereigentliche Prozess, der vom Funktionsnamen zu eigentlichen Funktion führt ist sehrkompliziert. function list ist auch kein Typ in Java.
![Page 165: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/165.jpg)
Beispiel: x = min(a, min(a,b) + 4L)
=
x ( )
min a +
( )
min a b
4L
7, longvar
◦, function list
=
x ( )
min a +
( )
min a b
4L
int min(int,int)float min(float,float)double min(double,double)
7long x 3int a 5int b
Achtung: Dieses ist eine sehr vereinfachte und teilweise inkorrekte Darstellung. Dereigentliche Prozess, der vom Funktionsnamen zu eigentlichen Funktion führt ist sehrkompliziert. function list ist auch kein Typ in Java.
![Page 166: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/166.jpg)
Beispiel: x = min(a, min(a,b) + 4L)
=
x ( )
min a +
( )
min a b
4L
7, longvar
◦, function list 3, intvar
=
x ( )
min a +
( )
min a b
4L
int min(int,int)float min(float,float)double min(double,double)
7long x 3int a 5int b
Achtung: Dieses ist eine sehr vereinfachte und teilweise inkorrekte Darstellung. Dereigentliche Prozess, der vom Funktionsnamen zu eigentlichen Funktion führt ist sehrkompliziert. function list ist auch kein Typ in Java.
![Page 167: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/167.jpg)
Beispiel: x = min(a, min(a,b) + 4L)
=
x ( )
min a +
( )
min a b
4L
7, longvar
◦, function list 3, intvar
=
x ( )
min a +
( )
min a b
4L
int min(int,int)float min(float,float)double min(double,double)
7long x 3int a 5int b
Achtung: Dieses ist eine sehr vereinfachte und teilweise inkorrekte Darstellung. Dereigentliche Prozess, der vom Funktionsnamen zu eigentlichen Funktion führt ist sehrkompliziert. function list ist auch kein Typ in Java.
![Page 168: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/168.jpg)
Beispiel: x = min(a, min(a,b) + 4L)
=
x ( )
min a +
( )
min a b
4L
7, longvar
◦, function list 3, intvar
◦, function list
=
x ( )
min a +
( )
min a b
4L
int min(int,int)float min(float,float)double min(double,double)
7long x 3int a 5int b
Achtung: Dieses ist eine sehr vereinfachte und teilweise inkorrekte Darstellung. Dereigentliche Prozess, der vom Funktionsnamen zu eigentlichen Funktion führt ist sehrkompliziert. function list ist auch kein Typ in Java.
![Page 169: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/169.jpg)
Beispiel: x = min(a, min(a,b) + 4L)
=
x ( )
min a +
( )
min a b
4L
7, longvar
◦, function list 3, intvar
◦, function list
=
x ( )
min a +
( )
min a b
4L
int min(int,int)float min(float,float)double min(double,double)
7long x 3int a 5int b
Achtung: Dieses ist eine sehr vereinfachte und teilweise inkorrekte Darstellung. Dereigentliche Prozess, der vom Funktionsnamen zu eigentlichen Funktion führt ist sehrkompliziert. function list ist auch kein Typ in Java.
![Page 170: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/170.jpg)
Beispiel: x = min(a, min(a,b) + 4L)
=
x ( )
min a +
( )
min a b
4L
7, longvar
◦, function list 3, intvar
◦, function list 3, intvar
=
x ( )
min a +
( )
min a b
4L
int min(int,int)float min(float,float)double min(double,double)
7long x 3int a 5int b
Achtung: Dieses ist eine sehr vereinfachte und teilweise inkorrekte Darstellung. Dereigentliche Prozess, der vom Funktionsnamen zu eigentlichen Funktion führt ist sehrkompliziert. function list ist auch kein Typ in Java.
![Page 171: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/171.jpg)
Beispiel: x = min(a, min(a,b) + 4L)
=
x ( )
min a +
( )
min a b
4L
7, longvar
◦, function list 3, intvar
◦, function list 3, intvar
=
x ( )
min a +
( )
min a b
4L
int min(int,int)float min(float,float)double min(double,double)
7long x 3int a 5int b
Achtung: Dieses ist eine sehr vereinfachte und teilweise inkorrekte Darstellung. Dereigentliche Prozess, der vom Funktionsnamen zu eigentlichen Funktion führt ist sehrkompliziert. function list ist auch kein Typ in Java.
![Page 172: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/172.jpg)
Beispiel: x = min(a, min(a,b) + 4L)
=
x ( )
min a +
( )
min a b
4L
7, longvar
◦, function list 3, intvar
◦, function list 3, intvar
5, intvar
=
x ( )
min a +
( )
min a b
4L
int min(int,int)float min(float,float)double min(double,double)
7long x 3int a 5int b
Achtung: Dieses ist eine sehr vereinfachte und teilweise inkorrekte Darstellung. Dereigentliche Prozess, der vom Funktionsnamen zu eigentlichen Funktion führt ist sehrkompliziert. function list ist auch kein Typ in Java.
![Page 173: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/173.jpg)
Beispiel: x = min(a, min(a,b) + 4L)
=
x ( )
min a +
( )
min a b
4L
7, longvar
◦, function list 3, intvar
◦, function list 3, intvar
5, intvar
=
x ( )
min a +
( )
min a b
4L
int min(int,int)float min(float,float)double min(double,double)
7long x 3int a 5int b
Achtung: Dieses ist eine sehr vereinfachte und teilweise inkorrekte Darstellung. Dereigentliche Prozess, der vom Funktionsnamen zu eigentlichen Funktion führt ist sehrkompliziert. function list ist auch kein Typ in Java.
![Page 174: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/174.jpg)
Beispiel: x = min(a, min(a,b) + 4L)
=
x ( )
min a +
( )
min a b
4L
7, longvar
◦, function list 3, intvar
◦, function list 3, intvar
5, intvar
3, intval
=
x ( )
min a +
( )
min a b
4L
int min(int,int)float min(float,float)double min(double,double)
7long x 3int a 5int b
Achtung: Dieses ist eine sehr vereinfachte und teilweise inkorrekte Darstellung. Dereigentliche Prozess, der vom Funktionsnamen zu eigentlichen Funktion führt ist sehrkompliziert. function list ist auch kein Typ in Java.
![Page 175: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/175.jpg)
Beispiel: x = min(a, min(a,b) + 4L)
=
x ( )
min a +
( )
min a b
4L
7, longvar
◦, function list 3, intvar
◦, function list 3, intvar
5, intvar
3, intval
=
x ( )
min a +
( )
min a b
4L
int min(int,int)float min(float,float)double min(double,double)
7long x 3int a 5int b
Achtung: Dieses ist eine sehr vereinfachte und teilweise inkorrekte Darstellung. Dereigentliche Prozess, der vom Funktionsnamen zu eigentlichen Funktion führt ist sehrkompliziert. function list ist auch kein Typ in Java.
![Page 176: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/176.jpg)
Beispiel: x = min(a, min(a,b) + 4L)
=
x ( )
min a +
( )
min a b
4L
7, longvar
◦, function list 3, intvar
◦, function list 3, intvar
5, intvar
3, intval
4, longval
=
x ( )
min a +
( )
min a b
4L
int min(int,int)float min(float,float)double min(double,double)
7long x 3int a 5int b
Achtung: Dieses ist eine sehr vereinfachte und teilweise inkorrekte Darstellung. Dereigentliche Prozess, der vom Funktionsnamen zu eigentlichen Funktion führt ist sehrkompliziert. function list ist auch kein Typ in Java.
![Page 177: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/177.jpg)
Beispiel: x = min(a, min(a,b) + 4L)
=
x ( )
min a +
( )
min a b
4L
7, longvar
◦, function list 3, intvar
◦, function list 3, intvar
5, intvar
3, intval
4, longval
=
x ( )
min a +
( )
min a b
4L
int min(int,int)float min(float,float)double min(double,double)
7long x 3int a 5int b
Achtung: Dieses ist eine sehr vereinfachte und teilweise inkorrekte Darstellung. Dereigentliche Prozess, der vom Funktionsnamen zu eigentlichen Funktion führt ist sehrkompliziert. function list ist auch kein Typ in Java.
![Page 178: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/178.jpg)
Beispiel: x = min(a, min(a,b) + 4L)
=
x ( )
min a +
( )
min a b
4L
7, longvar
◦, function list 3, intvar
◦, function list 3, intvar
5, intvar
3, intval
4, longval
7, longval
long
=
x ( )
min a +
( )
min a b
4L
int min(int,int)float min(float,float)double min(double,double)
7long x 3int a 5int b
Achtung: Dieses ist eine sehr vereinfachte und teilweise inkorrekte Darstellung. Dereigentliche Prozess, der vom Funktionsnamen zu eigentlichen Funktion führt ist sehrkompliziert. function list ist auch kein Typ in Java.
![Page 179: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/179.jpg)
Beispiel: x = min(a, min(a,b) + 4L)
=
x ( )
min a +
( )
min a b
4L
7, longvar
◦, function list 3, intvar
◦, function list 3, intvar
5, intvar
3, intval
4, longval
7, longval
long
=
x ( )
min a +
( )
min a b
4L
int min(int,int)float min(float,float)double min(double,double)
7long x 3int a 5int b
Achtung: Dieses ist eine sehr vereinfachte und teilweise inkorrekte Darstellung. Dereigentliche Prozess, der vom Funktionsnamen zu eigentlichen Funktion führt ist sehrkompliziert. function list ist auch kein Typ in Java.
![Page 180: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/180.jpg)
Beispiel: x = min(a, min(a,b) + 4L)
=
x ( )
min a +
( )
min a b
4L
7, longvar
◦, function list 3, intvar
◦, function list 3, intvar
5, intvar
3, intval
4, longval
7, longval
3.0, floatval
long
float float
=
x ( )
min a +
( )
min a b
4L
int min(int,int)float min(float,float)double min(double,double)
7long x 3int a 5int b
Achtung: Dieses ist eine sehr vereinfachte und teilweise inkorrekte Darstellung. Dereigentliche Prozess, der vom Funktionsnamen zu eigentlichen Funktion führt ist sehrkompliziert. function list ist auch kein Typ in Java.
![Page 181: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/181.jpg)
Beispiel: x = min(a, min(a,b) + 4L)
=
x ( )
min a +
( )
min a b
4L
7, longvar
◦, function list 3, intvar
◦, function list 3, intvar
5, intvar
3, intval
4, longval
7, longval
3.0, floatval
long
float float
=
x ( )
min a +
( )
min a b
4L
int min(int,int)float min(float,float)double min(double,double)
7long x 3int a 5int b
Achtung: Dieses ist eine sehr vereinfachte und teilweise inkorrekte Darstellung. Dereigentliche Prozess, der vom Funktionsnamen zu eigentlichen Funktion führt ist sehrkompliziert. function list ist auch kein Typ in Java.
![Page 182: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/182.jpg)
Beispiel: x = min(a, min(a,b) + 4L)
=
x ( )
min a +
( )
min a b
4L
7, longvar
◦, function list 3, intvar
◦, function list 3, intvar
5, intvar
3, intval
4, longval
7, longval
3.0, floatval
long
float float
=
x ( )
min a +
( )
min a b
4L
int min(int,int)float min(float,float)double min(double,double)
7long x 3int a 5int b
ERROR
float is not casted to long
Achtung: Dieses ist eine sehr vereinfachte und teilweise inkorrekte Darstellung. Dereigentliche Prozess, der vom Funktionsnamen zu eigentlichen Funktion führt ist sehrkompliziert. function list ist auch kein Typ in Java.
![Page 183: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/183.jpg)
Impliziter Typecast – Strings
Spezialfall
ñ Falls beim Operator + ein Typ vom Typ String ist, wird der
andere auch in einen String umgewandelt.
=⇒ Stringkonkatenation.
ñ Jeder Typ in Java besitzt eine Stringrepresentation.
Funktioniert nicht bei selbstgeschriebenen Funktionen.
5.3 Auswertung von Ausdrücken 30. Jan. 2018
Felix Brandt, Harald Räcke 110/596
![Page 184: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/184.jpg)
Beispiel: s = a + b
s = a + bs = a + b
5.3 Auswertung von Ausdrücken 30. Jan. 2018
Felix Brandt, Harald Räcke 111/596
![Page 185: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/185.jpg)
Beispiel: s = a + b
s = a + bs = a + b
5.3 Auswertung von Ausdrücken 30. Jan. 2018
Felix Brandt, Harald Räcke 111/596
![Page 186: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/186.jpg)
Beispiel: s = a + b
s = a + bs = a + b
5.3 Auswertung von Ausdrücken 30. Jan. 2018
Felix Brandt, Harald Räcke 111/596
![Page 187: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/187.jpg)
Beispiel: s = a + b
s = +
a b
s = +
a b
5.3 Auswertung von Ausdrücken 30. Jan. 2018
Felix Brandt, Harald Räcke 111/596
![Page 188: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/188.jpg)
Beispiel: s = a + b
s = +
a b
s = +
a b
5.3 Auswertung von Ausdrücken 30. Jan. 2018
Felix Brandt, Harald Räcke 111/596
![Page 189: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/189.jpg)
Beispiel: s = a + b
=
s +
a b
=
s +
a b
5.3 Auswertung von Ausdrücken 30. Jan. 2018
Felix Brandt, Harald Räcke 111/596
![Page 190: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/190.jpg)
Beispiel: s = a + b
=
s +
a b
=
s +
a b
String s "Hallo" 2a 6b
5.3 Auswertung von Ausdrücken 30. Jan. 2018
Felix Brandt, Harald Räcke 111/596
![Page 191: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/191.jpg)
Beispiel: s = a + b
=
s +
a b
=
s +
a b
String s "Hallo" 2a 6b
5.3 Auswertung von Ausdrücken 30. Jan. 2018
Felix Brandt, Harald Räcke 111/596
![Page 192: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/192.jpg)
Beispiel: s = a + b
=
s +
a b
"Hallo", Stringvar
=
s +
a b
String s "Hallo" 2a 6b
5.3 Auswertung von Ausdrücken 30. Jan. 2018
Felix Brandt, Harald Räcke 111/596
![Page 193: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/193.jpg)
Beispiel: s = a + b
=
s +
a b
"Hallo", Stringvar
=
s +
a b
String s "Hallo" 2a 6b
5.3 Auswertung von Ausdrücken 30. Jan. 2018
Felix Brandt, Harald Räcke 111/596
![Page 194: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/194.jpg)
Beispiel: s = a + b
=
s +
a b
"Hallo", Stringvar
2, intvar
=
s +
a b
String s "Hallo" 2a 6b
5.3 Auswertung von Ausdrücken 30. Jan. 2018
Felix Brandt, Harald Räcke 111/596
![Page 195: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/195.jpg)
Beispiel: s = a + b
=
s +
a b
"Hallo", Stringvar
2, intvar
=
s +
a b
String s "Hallo" 2a 6b
5.3 Auswertung von Ausdrücken 30. Jan. 2018
Felix Brandt, Harald Räcke 111/596
![Page 196: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/196.jpg)
Beispiel: s = a + b
=
s +
a b
"Hallo", Stringvar
2, intvar
6, intvar
=
s +
a b
String s "Hallo" 2a 6b
5.3 Auswertung von Ausdrücken 30. Jan. 2018
Felix Brandt, Harald Räcke 111/596
![Page 197: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/197.jpg)
Beispiel: s = a + b
=
s +
a b
"Hallo", Stringvar
2, intvar
6, intvar
=
s +
a b
String s "Hallo" 2a 6b
5.3 Auswertung von Ausdrücken 30. Jan. 2018
Felix Brandt, Harald Räcke 111/596
![Page 198: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/198.jpg)
Beispiel: s = a + b
=
s +
a b
"Hallo", Stringvar
2, intvar
6, intvar
8, intval
=
s +
a b
String s "Hallo" 2a 6b
5.3 Auswertung von Ausdrücken 30. Jan. 2018
Felix Brandt, Harald Räcke 111/596
![Page 199: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/199.jpg)
Beispiel: s = a + b
=
s +
a b
"Hallo", Stringvar
2, intvar
6, intvar
8, intval
=
s +
a b
String s "Hallo" 2a 6b
5.3 Auswertung von Ausdrücken 30. Jan. 2018
Felix Brandt, Harald Räcke 111/596
![Page 200: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/200.jpg)
Beispiel: s = a + b
=
s +
a b
"Hallo", Stringvar
2, intvar
6, intvar
8, intval
=
s +
a b
String s "Hallo" 2a 6b
ERROR
int is not casted to String
5.3 Auswertung von Ausdrücken 30. Jan. 2018
Felix Brandt, Harald Räcke 111/596
![Page 201: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/201.jpg)
Beispiel: s = "" + a + b
s = "" + a + bs = "" + a + b
Achtung: vereinfachte Darstellung!!!Eigentlich arbeitet Java mit Ojektenvom Typ StringBuffer um den +-Operator zu realisieren...
Strings are immutable! Falls eine weitereReferenz auf "Hallo" verweist, hat sichfür diese nichts geändert.
5.3 Auswertung von Ausdrücken 30. Jan. 2018
Felix Brandt, Harald Räcke 112/596
![Page 202: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/202.jpg)
Beispiel: s = "" + a + b
s = "" + a + bs = "" + a + b
Achtung: vereinfachte Darstellung!!!Eigentlich arbeitet Java mit Ojektenvom Typ StringBuffer um den +-Operator zu realisieren...
Strings are immutable! Falls eine weitereReferenz auf "Hallo" verweist, hat sichfür diese nichts geändert.
5.3 Auswertung von Ausdrücken 30. Jan. 2018
Felix Brandt, Harald Räcke 112/596
![Page 203: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/203.jpg)
Beispiel: s = "" + a + b
s = "" + a + bs = "" + a + b
Achtung: vereinfachte Darstellung!!!Eigentlich arbeitet Java mit Ojektenvom Typ StringBuffer um den +-Operator zu realisieren...
Strings are immutable! Falls eine weitereReferenz auf "Hallo" verweist, hat sichfür diese nichts geändert.
5.3 Auswertung von Ausdrücken 30. Jan. 2018
Felix Brandt, Harald Räcke 112/596
![Page 204: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/204.jpg)
Beispiel: s = "" + a + b
s = +
"" a
+ bs = +
"" a
+ b
Achtung: vereinfachte Darstellung!!!Eigentlich arbeitet Java mit Ojektenvom Typ StringBuffer um den +-Operator zu realisieren...
Strings are immutable! Falls eine weitereReferenz auf "Hallo" verweist, hat sichfür diese nichts geändert.
5.3 Auswertung von Ausdrücken 30. Jan. 2018
Felix Brandt, Harald Räcke 112/596
![Page 205: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/205.jpg)
Beispiel: s = "" + a + b
s = +
"" a
+ bs = +
"" a
+ b
Achtung: vereinfachte Darstellung!!!Eigentlich arbeitet Java mit Ojektenvom Typ StringBuffer um den +-Operator zu realisieren...
Strings are immutable! Falls eine weitereReferenz auf "Hallo" verweist, hat sichfür diese nichts geändert.
5.3 Auswertung von Ausdrücken 30. Jan. 2018
Felix Brandt, Harald Räcke 112/596
![Page 206: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/206.jpg)
Beispiel: s = "" + a + b
s = +
+
"" a
b
s = +
+
"" a
b
Achtung: vereinfachte Darstellung!!!Eigentlich arbeitet Java mit Ojektenvom Typ StringBuffer um den +-Operator zu realisieren...
Strings are immutable! Falls eine weitereReferenz auf "Hallo" verweist, hat sichfür diese nichts geändert.
5.3 Auswertung von Ausdrücken 30. Jan. 2018
Felix Brandt, Harald Räcke 112/596
![Page 207: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/207.jpg)
Beispiel: s = "" + a + b
s = +
+
"" a
b
s = +
+
"" a
b
Achtung: vereinfachte Darstellung!!!Eigentlich arbeitet Java mit Ojektenvom Typ StringBuffer um den +-Operator zu realisieren...
Strings are immutable! Falls eine weitereReferenz auf "Hallo" verweist, hat sichfür diese nichts geändert.
5.3 Auswertung von Ausdrücken 30. Jan. 2018
Felix Brandt, Harald Räcke 112/596
![Page 208: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/208.jpg)
Beispiel: s = "" + a + b
=
s +
+
"" a
b
=
s +
+
"" a
b
String s "Hallo" 2a 6bAchtung: vereinfachte Darstellung!!!Eigentlich arbeitet Java mit Ojektenvom Typ StringBuffer um den +-Operator zu realisieren...
Strings are immutable! Falls eine weitereReferenz auf "Hallo" verweist, hat sichfür diese nichts geändert.
5.3 Auswertung von Ausdrücken 30. Jan. 2018
Felix Brandt, Harald Räcke 112/596
![Page 209: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/209.jpg)
Beispiel: s = "" + a + b
=
s +
+
"" a
b
=
s +
+
"" a
b
String s "Hallo" 2a 6bAchtung: vereinfachte Darstellung!!!Eigentlich arbeitet Java mit Ojektenvom Typ StringBuffer um den +-Operator zu realisieren...
Strings are immutable! Falls eine weitereReferenz auf "Hallo" verweist, hat sichfür diese nichts geändert.
5.3 Auswertung von Ausdrücken 30. Jan. 2018
Felix Brandt, Harald Räcke 112/596
![Page 210: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/210.jpg)
Beispiel: s = "" + a + b
=
s +
+
"" a
b
"Hallo", Stringvar
=
s +
+
"" a
b
String s "Hallo" 2a 6bAchtung: vereinfachte Darstellung!!!Eigentlich arbeitet Java mit Ojektenvom Typ StringBuffer um den +-Operator zu realisieren...
Strings are immutable! Falls eine weitereReferenz auf "Hallo" verweist, hat sichfür diese nichts geändert.
5.3 Auswertung von Ausdrücken 30. Jan. 2018
Felix Brandt, Harald Räcke 112/596
![Page 211: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/211.jpg)
Beispiel: s = "" + a + b
=
s +
+
"" a
b
"Hallo", Stringvar
=
s +
+
"" a
b
String s "Hallo" 2a 6bAchtung: vereinfachte Darstellung!!!Eigentlich arbeitet Java mit Ojektenvom Typ StringBuffer um den +-Operator zu realisieren...
Strings are immutable! Falls eine weitereReferenz auf "Hallo" verweist, hat sichfür diese nichts geändert.
5.3 Auswertung von Ausdrücken 30. Jan. 2018
Felix Brandt, Harald Räcke 112/596
![Page 212: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/212.jpg)
Beispiel: s = "" + a + b
=
s +
+
"" a
b
"Hallo", Stringvar
"", Stringval
=
s +
+
"" a
b
String s "Hallo" 2a 6bAchtung: vereinfachte Darstellung!!!Eigentlich arbeitet Java mit Ojektenvom Typ StringBuffer um den +-Operator zu realisieren...
Strings are immutable! Falls eine weitereReferenz auf "Hallo" verweist, hat sichfür diese nichts geändert.
5.3 Auswertung von Ausdrücken 30. Jan. 2018
Felix Brandt, Harald Räcke 112/596
![Page 213: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/213.jpg)
Beispiel: s = "" + a + b
=
s +
+
"" a
b
"Hallo", Stringvar
"", Stringval
=
s +
+
"" a
b
String s "Hallo" 2a 6bAchtung: vereinfachte Darstellung!!!Eigentlich arbeitet Java mit Ojektenvom Typ StringBuffer um den +-Operator zu realisieren...
Strings are immutable! Falls eine weitereReferenz auf "Hallo" verweist, hat sichfür diese nichts geändert.
5.3 Auswertung von Ausdrücken 30. Jan. 2018
Felix Brandt, Harald Räcke 112/596
![Page 214: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/214.jpg)
Beispiel: s = "" + a + b
=
s +
+
"" a
b
"Hallo", Stringvar
"", Stringval
2, intvar
=
s +
+
"" a
b
String s "Hallo" 2a 6bAchtung: vereinfachte Darstellung!!!Eigentlich arbeitet Java mit Ojektenvom Typ StringBuffer um den +-Operator zu realisieren...
Strings are immutable! Falls eine weitereReferenz auf "Hallo" verweist, hat sichfür diese nichts geändert.
5.3 Auswertung von Ausdrücken 30. Jan. 2018
Felix Brandt, Harald Räcke 112/596
![Page 215: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/215.jpg)
Beispiel: s = "" + a + b
=
s +
+
"" a
b
"Hallo", Stringvar
"", Stringval
2, intvar
=
s +
+
"" a
b
String s "Hallo" 2a 6bAchtung: vereinfachte Darstellung!!!Eigentlich arbeitet Java mit Ojektenvom Typ StringBuffer um den +-Operator zu realisieren...
Strings are immutable! Falls eine weitereReferenz auf "Hallo" verweist, hat sichfür diese nichts geändert.
5.3 Auswertung von Ausdrücken 30. Jan. 2018
Felix Brandt, Harald Räcke 112/596
![Page 216: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/216.jpg)
Beispiel: s = "" + a + b
=
s +
+
"" a
b
"Hallo", Stringvar
"", Stringval
2, intvar
"2", Stringval
=
s +
+
"" a
b
String s "Hallo" 2a 6b
String
Achtung: vereinfachte Darstellung!!!Eigentlich arbeitet Java mit Ojektenvom Typ StringBuffer um den +-Operator zu realisieren...
Strings are immutable! Falls eine weitereReferenz auf "Hallo" verweist, hat sichfür diese nichts geändert.
5.3 Auswertung von Ausdrücken 30. Jan. 2018
Felix Brandt, Harald Räcke 112/596
![Page 217: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/217.jpg)
Beispiel: s = "" + a + b
=
s +
+
"" a
b
"Hallo", Stringvar
"", Stringval
2, intvar
"2", Stringval
=
s +
+
"" a
b
String s "Hallo" 2a 6b
String
Achtung: vereinfachte Darstellung!!!Eigentlich arbeitet Java mit Ojektenvom Typ StringBuffer um den +-Operator zu realisieren...
Strings are immutable! Falls eine weitereReferenz auf "Hallo" verweist, hat sichfür diese nichts geändert.
5.3 Auswertung von Ausdrücken 30. Jan. 2018
Felix Brandt, Harald Räcke 112/596
![Page 218: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/218.jpg)
Beispiel: s = "" + a + b
=
s +
+
"" a
b
"Hallo", Stringvar
"", Stringval
2, intvar
"2", Stringval
6, intval
=
s +
+
"" a
b
String s "Hallo" 2a 6b
String
Achtung: vereinfachte Darstellung!!!Eigentlich arbeitet Java mit Ojektenvom Typ StringBuffer um den +-Operator zu realisieren...
Strings are immutable! Falls eine weitereReferenz auf "Hallo" verweist, hat sichfür diese nichts geändert.
5.3 Auswertung von Ausdrücken 30. Jan. 2018
Felix Brandt, Harald Räcke 112/596
![Page 219: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/219.jpg)
Beispiel: s = "" + a + b
=
s +
+
"" a
b
"Hallo", Stringvar
"", Stringval
2, intvar
"2", Stringval
6, intval
=
s +
+
"" a
b
String s "Hallo" 2a 6b
String
Achtung: vereinfachte Darstellung!!!Eigentlich arbeitet Java mit Ojektenvom Typ StringBuffer um den +-Operator zu realisieren...
Strings are immutable! Falls eine weitereReferenz auf "Hallo" verweist, hat sichfür diese nichts geändert.
5.3 Auswertung von Ausdrücken 30. Jan. 2018
Felix Brandt, Harald Räcke 112/596
![Page 220: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/220.jpg)
Beispiel: s = "" + a + b
=
s +
+
"" a
b
"Hallo", Stringvar
"", Stringval
2, intvar
"2", Stringval
6, intval
"26", Stringval
=
s +
+
"" a
b
String s "Hallo" 2a 6b
String
String
Achtung: vereinfachte Darstellung!!!Eigentlich arbeitet Java mit Ojektenvom Typ StringBuffer um den +-Operator zu realisieren...
Strings are immutable! Falls eine weitereReferenz auf "Hallo" verweist, hat sichfür diese nichts geändert.
5.3 Auswertung von Ausdrücken 30. Jan. 2018
Felix Brandt, Harald Räcke 112/596
![Page 221: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/221.jpg)
Beispiel: s = "" + a + b
=
s +
+
"" a
b
"Hallo", Stringvar
"", Stringval
2, intvar
"2", Stringval
6, intval
"26", Stringval
=
s +
+
"" a
b
String s "Hallo" 2a 6b
String
String
Achtung: vereinfachte Darstellung!!!Eigentlich arbeitet Java mit Ojektenvom Typ StringBuffer um den +-Operator zu realisieren...
Strings are immutable! Falls eine weitereReferenz auf "Hallo" verweist, hat sichfür diese nichts geändert.
5.3 Auswertung von Ausdrücken 30. Jan. 2018
Felix Brandt, Harald Räcke 112/596
![Page 222: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/222.jpg)
Beispiel: s = "" + a + b
=
s +
+
"" a
b
"Hallo", Stringvar
"", Stringval
2, intvar
"2", Stringval
6, intval
"26", Stringval
"26", Stringval
=
s +
+
"" a
b
String s "Hallo" 2a 6b
"26"
String
String
Achtung: vereinfachte Darstellung!!!Eigentlich arbeitet Java mit Ojektenvom Typ StringBuffer um den +-Operator zu realisieren...
Strings are immutable! Falls eine weitereReferenz auf "Hallo" verweist, hat sichfür diese nichts geändert.
5.3 Auswertung von Ausdrücken 30. Jan. 2018
Felix Brandt, Harald Räcke 112/596
![Page 223: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/223.jpg)
Beispiel: s = s + 1
s = s + 1s = s + 1
5.3 Auswertung von Ausdrücken 30. Jan. 2018
Felix Brandt, Harald Räcke 113/596
![Page 224: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/224.jpg)
Beispiel: s = s + 1
s = s + 1s = s + 1
5.3 Auswertung von Ausdrücken 30. Jan. 2018
Felix Brandt, Harald Räcke 113/596
![Page 225: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/225.jpg)
Beispiel: s = s + 1
s = s + 1s = s + 1
5.3 Auswertung von Ausdrücken 30. Jan. 2018
Felix Brandt, Harald Räcke 113/596
![Page 226: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/226.jpg)
Beispiel: s = s + 1
s = +
s 1
s = +
s 1
5.3 Auswertung von Ausdrücken 30. Jan. 2018
Felix Brandt, Harald Räcke 113/596
![Page 227: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/227.jpg)
Beispiel: s = s + 1
s = +
s 1
s = +
s 1
5.3 Auswertung von Ausdrücken 30. Jan. 2018
Felix Brandt, Harald Räcke 113/596
![Page 228: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/228.jpg)
Beispiel: s = s + 1
=
s +
s 1
=
s +
s 1
5.3 Auswertung von Ausdrücken 30. Jan. 2018
Felix Brandt, Harald Räcke 113/596
![Page 229: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/229.jpg)
Beispiel: s = s + 1
=
s +
s 1
=
s +
s 1
4short s
5.3 Auswertung von Ausdrücken 30. Jan. 2018
Felix Brandt, Harald Räcke 113/596
![Page 230: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/230.jpg)
Beispiel: s = s + 1
=
s +
s 1
=
s +
s 1
4short s
5.3 Auswertung von Ausdrücken 30. Jan. 2018
Felix Brandt, Harald Räcke 113/596
![Page 231: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/231.jpg)
Beispiel: s = s + 1
=
s +
s 1
4, shortvar
=
s +
s 1
4short s
5.3 Auswertung von Ausdrücken 30. Jan. 2018
Felix Brandt, Harald Räcke 113/596
![Page 232: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/232.jpg)
Beispiel: s = s + 1
=
s +
s 1
4, shortvar
=
s +
s 1
4short s
5.3 Auswertung von Ausdrücken 30. Jan. 2018
Felix Brandt, Harald Räcke 113/596
![Page 233: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/233.jpg)
Beispiel: s = s + 1
=
s +
s 1
4, shortvar
4, shortvar
=
s +
s 1
4short s
5.3 Auswertung von Ausdrücken 30. Jan. 2018
Felix Brandt, Harald Räcke 113/596
![Page 234: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/234.jpg)
Beispiel: s = s + 1
=
s +
s 1
4, shortvar
4, shortvar
=
s +
s 1
4short s
5.3 Auswertung von Ausdrücken 30. Jan. 2018
Felix Brandt, Harald Räcke 113/596
![Page 235: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/235.jpg)
Beispiel: s = s + 1
=
s +
s 1
4, shortvar
4, shortvar
1, intval
=
s +
s 1
4short s
5.3 Auswertung von Ausdrücken 30. Jan. 2018
Felix Brandt, Harald Räcke 113/596
![Page 236: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/236.jpg)
Beispiel: s = s + 1
=
s +
s 1
4, shortvar
4, shortvar
1, intval
=
s +
s 1
4short s
5.3 Auswertung von Ausdrücken 30. Jan. 2018
Felix Brandt, Harald Räcke 113/596
![Page 237: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/237.jpg)
Beispiel: s = s + 1
=
s +
s 1
4, shortvar
4, shortvar
1, intval
5, intval
=
s +
s 1
int
4short s
5.3 Auswertung von Ausdrücken 30. Jan. 2018
Felix Brandt, Harald Räcke 113/596
![Page 238: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/238.jpg)
Beispiel: s = s + 1
=
s +
s 1
4, shortvar
4, shortvar
1, intval
5, intval
=
s +
s 1
int
4short s
5.3 Auswertung von Ausdrücken 30. Jan. 2018
Felix Brandt, Harald Räcke 113/596
![Page 239: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/239.jpg)
Beispiel: s = s + 1
=
s +
s 1
4, shortvar
4, shortvar
1, intval
5, intval
=
s +
s 1
int
4short s
ERRORint is not casted to short
5.3 Auswertung von Ausdrücken 30. Jan. 2018
Felix Brandt, Harald Räcke 113/596
![Page 240: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/240.jpg)
Beispiel: s = s + 1
=
s +
s 1
4, shortvar
4, shortvar
1, intval
5, intval
=
s +
s 1
int
4short s
ERRORint is not casted to short
5.3 Auswertung von Ausdrücken 30. Jan. 2018
Felix Brandt, Harald Räcke 113/596
![Page 241: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/241.jpg)
Beispiel: s = 7 + 1
s = 7 + 1s = 7 + 1
Wenn der int-Ausdruck, der zugewiesen werdensoll, zu Compilierzeit bekannt ist, und er in einenshort „passt“, wird der Cast von int nach shortdurchgeführt.
Funktioniert nicht für long-Ausdrücke, d.h., byteb = 4L; erzeugt einen Compilerfehler.
5.3 Auswertung von Ausdrücken 30. Jan. 2018
Felix Brandt, Harald Räcke 114/596
![Page 242: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/242.jpg)
Beispiel: s = 7 + 1
s = 7 + 1s = 7 + 1
Wenn der int-Ausdruck, der zugewiesen werdensoll, zu Compilierzeit bekannt ist, und er in einenshort „passt“, wird der Cast von int nach shortdurchgeführt.
Funktioniert nicht für long-Ausdrücke, d.h., byteb = 4L; erzeugt einen Compilerfehler.
5.3 Auswertung von Ausdrücken 30. Jan. 2018
Felix Brandt, Harald Räcke 114/596
![Page 243: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/243.jpg)
Beispiel: s = 7 + 1
s = 7 + 1s = 7 + 1
Wenn der int-Ausdruck, der zugewiesen werdensoll, zu Compilierzeit bekannt ist, und er in einenshort „passt“, wird der Cast von int nach shortdurchgeführt.
Funktioniert nicht für long-Ausdrücke, d.h., byteb = 4L; erzeugt einen Compilerfehler.
5.3 Auswertung von Ausdrücken 30. Jan. 2018
Felix Brandt, Harald Räcke 114/596
![Page 244: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/244.jpg)
Beispiel: s = 7 + 1
s = +
7 1
s = +
7 1
Wenn der int-Ausdruck, der zugewiesen werdensoll, zu Compilierzeit bekannt ist, und er in einenshort „passt“, wird der Cast von int nach shortdurchgeführt.
Funktioniert nicht für long-Ausdrücke, d.h., byteb = 4L; erzeugt einen Compilerfehler.
5.3 Auswertung von Ausdrücken 30. Jan. 2018
Felix Brandt, Harald Räcke 114/596
![Page 245: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/245.jpg)
Beispiel: s = 7 + 1
s = +
7 1
s = +
7 1
Wenn der int-Ausdruck, der zugewiesen werdensoll, zu Compilierzeit bekannt ist, und er in einenshort „passt“, wird der Cast von int nach shortdurchgeführt.
Funktioniert nicht für long-Ausdrücke, d.h., byteb = 4L; erzeugt einen Compilerfehler.
5.3 Auswertung von Ausdrücken 30. Jan. 2018
Felix Brandt, Harald Räcke 114/596
![Page 246: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/246.jpg)
Beispiel: s = 7 + 1
=
s +
7 1
=
s +
7 1
Wenn der int-Ausdruck, der zugewiesen werdensoll, zu Compilierzeit bekannt ist, und er in einenshort „passt“, wird der Cast von int nach shortdurchgeführt.
Funktioniert nicht für long-Ausdrücke, d.h., byteb = 4L; erzeugt einen Compilerfehler.
5.3 Auswertung von Ausdrücken 30. Jan. 2018
Felix Brandt, Harald Räcke 114/596
![Page 247: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/247.jpg)
Beispiel: s = 7 + 1
=
s +
7 1
=
s +
7 1
4short s
Wenn der int-Ausdruck, der zugewiesen werdensoll, zu Compilierzeit bekannt ist, und er in einenshort „passt“, wird der Cast von int nach shortdurchgeführt.
Funktioniert nicht für long-Ausdrücke, d.h., byteb = 4L; erzeugt einen Compilerfehler.
5.3 Auswertung von Ausdrücken 30. Jan. 2018
Felix Brandt, Harald Räcke 114/596
![Page 248: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/248.jpg)
Beispiel: s = 7 + 1
=
s +
7 1
=
s +
7 1
4short s
Wenn der int-Ausdruck, der zugewiesen werdensoll, zu Compilierzeit bekannt ist, und er in einenshort „passt“, wird der Cast von int nach shortdurchgeführt.
Funktioniert nicht für long-Ausdrücke, d.h., byteb = 4L; erzeugt einen Compilerfehler.
5.3 Auswertung von Ausdrücken 30. Jan. 2018
Felix Brandt, Harald Räcke 114/596
![Page 249: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/249.jpg)
Beispiel: s = 7 + 1
=
s +
7 1
4, shortvar
=
s +
7 1
4short s
Wenn der int-Ausdruck, der zugewiesen werdensoll, zu Compilierzeit bekannt ist, und er in einenshort „passt“, wird der Cast von int nach shortdurchgeführt.
Funktioniert nicht für long-Ausdrücke, d.h., byteb = 4L; erzeugt einen Compilerfehler.
5.3 Auswertung von Ausdrücken 30. Jan. 2018
Felix Brandt, Harald Räcke 114/596
![Page 250: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/250.jpg)
Beispiel: s = 7 + 1
=
s +
7 1
4, shortvar
=
s +
7 1
4short s
Wenn der int-Ausdruck, der zugewiesen werdensoll, zu Compilierzeit bekannt ist, und er in einenshort „passt“, wird der Cast von int nach shortdurchgeführt.
Funktioniert nicht für long-Ausdrücke, d.h., byteb = 4L; erzeugt einen Compilerfehler.
5.3 Auswertung von Ausdrücken 30. Jan. 2018
Felix Brandt, Harald Räcke 114/596
![Page 251: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/251.jpg)
Beispiel: s = 7 + 1
=
s +
7 1
4, shortvar
7, intval
=
s +
7 1
4short s
Wenn der int-Ausdruck, der zugewiesen werdensoll, zu Compilierzeit bekannt ist, und er in einenshort „passt“, wird der Cast von int nach shortdurchgeführt.
Funktioniert nicht für long-Ausdrücke, d.h., byteb = 4L; erzeugt einen Compilerfehler.
5.3 Auswertung von Ausdrücken 30. Jan. 2018
Felix Brandt, Harald Räcke 114/596
![Page 252: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/252.jpg)
Beispiel: s = 7 + 1
=
s +
7 1
4, shortvar
7, intval
=
s +
7 1
4short s
Wenn der int-Ausdruck, der zugewiesen werdensoll, zu Compilierzeit bekannt ist, und er in einenshort „passt“, wird der Cast von int nach shortdurchgeführt.
Funktioniert nicht für long-Ausdrücke, d.h., byteb = 4L; erzeugt einen Compilerfehler.
5.3 Auswertung von Ausdrücken 30. Jan. 2018
Felix Brandt, Harald Räcke 114/596
![Page 253: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/253.jpg)
Beispiel: s = 7 + 1
=
s +
7 1
4, shortvar
7, intval
1, intval
=
s +
7 1
4short s
Wenn der int-Ausdruck, der zugewiesen werdensoll, zu Compilierzeit bekannt ist, und er in einenshort „passt“, wird der Cast von int nach shortdurchgeführt.
Funktioniert nicht für long-Ausdrücke, d.h., byteb = 4L; erzeugt einen Compilerfehler.
5.3 Auswertung von Ausdrücken 30. Jan. 2018
Felix Brandt, Harald Räcke 114/596
![Page 254: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/254.jpg)
Beispiel: s = 7 + 1
=
s +
7 1
4, shortvar
7, intval
1, intval
=
s +
7 1
4short s
Wenn der int-Ausdruck, der zugewiesen werdensoll, zu Compilierzeit bekannt ist, und er in einenshort „passt“, wird der Cast von int nach shortdurchgeführt.
Funktioniert nicht für long-Ausdrücke, d.h., byteb = 4L; erzeugt einen Compilerfehler.
5.3 Auswertung von Ausdrücken 30. Jan. 2018
Felix Brandt, Harald Räcke 114/596
![Page 255: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/255.jpg)
Beispiel: s = 7 + 1
=
s +
7 1
4, shortvar
7, intval
1, intval
8, intval
=
s +
7 1
4short s
Wenn der int-Ausdruck, der zugewiesen werdensoll, zu Compilierzeit bekannt ist, und er in einenshort „passt“, wird der Cast von int nach shortdurchgeführt.
Funktioniert nicht für long-Ausdrücke, d.h., byteb = 4L; erzeugt einen Compilerfehler.
5.3 Auswertung von Ausdrücken 30. Jan. 2018
Felix Brandt, Harald Räcke 114/596
![Page 256: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/256.jpg)
Beispiel: s = 7 + 1
=
s +
7 1
4, shortvar
7, intval
1, intval
8, intval
=
s +
7 1
4short s
Wenn der int-Ausdruck, der zugewiesen werdensoll, zu Compilierzeit bekannt ist, und er in einenshort „passt“, wird der Cast von int nach shortdurchgeführt.
Funktioniert nicht für long-Ausdrücke, d.h., byteb = 4L; erzeugt einen Compilerfehler.
5.3 Auswertung von Ausdrücken 30. Jan. 2018
Felix Brandt, Harald Räcke 114/596
![Page 257: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/257.jpg)
Beispiel: s = 7 + 1
=
s +
7 1
4, shortvar
7, intval
1, intval
8, intval
8, shortval
=
s +
7 1
8short s
Wenn der int-Ausdruck, der zugewiesen werdensoll, zu Compilierzeit bekannt ist, und er in einenshort „passt“, wird der Cast von int nach shortdurchgeführt.
Funktioniert nicht für long-Ausdrücke, d.h., byteb = 4L; erzeugt einen Compilerfehler.
5.3 Auswertung von Ausdrücken 30. Jan. 2018
Felix Brandt, Harald Räcke 114/596
![Page 258: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/258.jpg)
Beispiel: s = 7 + 1
=
s +
7 1
4, shortvar
7, intval
1, intval
8, intval
8, shortval
=
s +
7 1
8short s
compile-time constantexpression
Wenn der int-Ausdruck, der zugewiesen werdensoll, zu Compilierzeit bekannt ist, und er in einenshort „passt“, wird der Cast von int nach shortdurchgeführt.
Funktioniert nicht für long-Ausdrücke, d.h., byteb = 4L; erzeugt einen Compilerfehler.
5.3 Auswertung von Ausdrücken 30. Jan. 2018
Felix Brandt, Harald Räcke 114/596
![Page 259: 5.3 Auswertung von Ausdrücken · Operatoren Unäre Operatoren: symbol name types L/R level ++ Post-inkrement (var) Zahl, char keine 2-- Post-dekrement (var) Zahl, char keine 2 ++](https://reader030.vdocuments.pub/reader030/viewer/2022040311/5d5bd8ad88c99308318bec41/html5/thumbnails/259.jpg)
Expliziter Typecast
symbol name type L/R level
(type) typecast Zahl, char rechts 3
Beispiele mit Datenverlust
ñ short s = (short) 23343445;
Die obersten bits werden einfach weggeworfen...
ñ double d = 1.5;short s = (short) d;
s hat danach den Wert 1.
...ohne Datenverlust:
ñ int x = 5;short s = (short) x;
Man kann einen cast zwischen Zahltypen er-zwingen (evtl. mit Datenverlust). Typecasts zwi-schen Referenzdatentypen kommen später.
5.3 Auswertung von Ausdrücken 30. Jan. 2018
Felix Brandt, Harald Räcke 115/596