Inkrement- und Dekrementoperatoren |
| 22.10.2015, 01:06 | Auf diesen Beitrag antworten » | ||||||||||||||||||||
| SixFeetUnder | Inkrement- und Dekrementoperatoren Meine Frage: Hallo zusammen, ich habe das folgende Programm:
Ich weiß, dass man so niemals programmieren würde; Trotzdem versuche ich mich an der Ausgabe. Meine Ideen: Folgendes Vorgehen: Ich sehe mir die Zeile an, Inkrement-Operator hat eine höhere Priorität als das * - Zeichen. Da ich zwei Inkrement - Operatoren in meiner Zeile habe, erfolgt die Assoziativität von rechts. Also wird das ++a auf 6 gesetzt, somit ist a=6. Also steht als Ausdruck:
Als nächstes ist dann a++ dran, hier müsste aber a auf 6 bleiben, da es Postinkrement ist. Also habe ich:
Und erst jetzt wird a = 7; Somit wäre die letzte Zeile:
Als Endergebnis dann 252. Meine IDE sagt aber 175. Daher meine Frage an Euch, wo habe ich hier einen Fehler? Vielen Dank |
||||||||||||||||||||
|
|
|||||||||||||||||||||
| 22.10.2015, 05:57 | Auf diesen Beitrag antworten » | ||||||||||||||||||||
| eulerscheZahl | Stichwort: linksassoziativ.
|
||||||||||||||||||||
| 27.10.2015, 05:48 | Auf diesen Beitrag antworten » | ||||||||||||||||||||
| SixFeetUnder | Danke für die Rückmeldung
|
||||||||||||||||||||
| 27.10.2015, 06:17 | Auf diesen Beitrag antworten » | ||||||||||||||||||||
| SixFeetUnder | Eine Frage noch: Ich habe den folgenden Code:
Hier wird doch das unäre Minus zuerst der 9 (Assoziativität rechts) zugeordnet, dann das unäre Minus der 5. Danach kommt die Multiplikation (Assiziativität links), sprich -5*6 = -30; Danach -30*-9 = 270 und zuletzt dann 270 / 4 = 67 (da es zwei Integer - Zahlen sind). Ist das richtig von der Interpretation? |
||||||||||||||||||||
| Anzeige | |||||||||||||||||||||
|
|
|||||||||||||||||||||
| 27.10.2015, 17:18 | Auf diesen Beitrag antworten » | ||||||||||||||||||||
| eulerscheZahl | Stimmt alles. |
||||||||||||||||||||
| 28.10.2015, 04:04 | Auf diesen Beitrag antworten » | ||||||||||||||||||||
| SixFeetUnder | Dankeschön :-) |
||||||||||||||||||||
| 28.10.2015, 04:18 | Auf diesen Beitrag antworten » | ||||||||||||||||||||
| SixFeetUnder | Irgendwie werden die Fragen nicht weniger :-)
Welche Priorität haben denn eigentlich die Klammern? Ist die Assoziativität dann links oder rechts? |
||||||||||||||||||||
| 28.10.2015, 05:56 | Auf diesen Beitrag antworten » | ||||||||||||||||||||
| eulerscheZahl | / arbeitet von links nach rechts. Hier eine Zeile mit gleicher Ausgabe:
|
||||||||||||||||||||
| 29.10.2015, 04:01 | Auf diesen Beitrag antworten » | ||||||||||||||||||||
| SixFeetUnder | Also geht es garnicht um die Klammern, sondern nach der Zuweisung des unären Minus zu 3,59 sofort zu dem geteilt Zeichen? |
||||||||||||||||||||
| 29.10.2015, 05:51 | Auf diesen Beitrag antworten » | ||||||||||||||||||||
| eulerscheZahl | So sieht der Baum aus:
Beim geteilt wird mit der Zerlegung begonnen. Das schreibt vor, erst die linke Seite abzuarbeiten, also das +. Hier geht es wieder von links nach rechts, also erst das b erhöhen. Dann wird -(a++) addiert. |
||||||||||||||||||||
|
|
Verwandte Themen
| Die Beliebtesten » |
| Die Größten » |
| Die Neuesten » |
