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 » |