Anfänger



  • es bleibt a = ...
    nur musst du die Bs aendern, also mal "b", dann wieder "b++" und dann auch mal "++b".

    bitte gehe auf meinen ersten post ein.



  • a = b++ + b++ 😕
    a = ++b + b++ 😕
    a = b + ++b 😕



  • kommt denn raus, was rauskommen soll?

    b soll von 4 auf 5 gehen, also darf nur einmal ++ vorkommen.
    dein drittes ist also schon mal richtig. kannst du auch erklaeren, welchen wert dann a und b haben?



  • hauptsache ihr einigt euch auf einen compiler. ein anderer könnte was anderes ausspucken



  • a = b++ + b++ a=8 b=6
    a = ++b + b++ a=9 b=6
    a = b + ++b a=9 b=5



  • edit:
    probier mal, nicht das zweite sondern das b in der zuweisung zu erhoehen.

    @net: das hat der lehrer zu entscheiden, weil der die noten vergibt 😛



  • Ich vermute, das ist alles Unsinn, denn es gibt keine feste Reihenfolge, wann ausdruck1 und ausdruck2 in ausdruck1 + ausdruck2 abgearbeitet werden, deswegen ist meiner Meinung nach sowas wie a = ++b + b++ nicht definiert. Angenommen links wird zuerst abgearbeitet und b war vorher 4 ==> nach der Ausführung von a = ++b + b++ gilt: a = 10 und b = 6. Angenommen rechts wird zuerst abgearbeitet und b war vorher 4 ==> nach Ausführung von a = ++b + b++ gilt: a = 9 und b = 6. D.h. bei einem Compiler kommt a = 10 bei anderen könnte a = 9 kommen. So etwas wie ++irgendwas (+-*/wasweißich) blablabla++ ist nur Blödsinn.

    edit: jetzt sehe ich, dass net auch drauf hingewiesen hat.



  • steht etwa im standard, dass die assoziativitaet der operatoren von der implementation abhaengig ist?



  • Die Assoziativität der Operatoren ist festgelegt, allerdings die Reihenfolge der Berechnungen nicht. d.h. der Ausdruck "a = f() + g();" kann je nach Compiler unterschiedlich ausgewertet werden: "tmp1=f();tmp2=g();a=tmp1+tmp2;" oder "tmp1=g();tmp2=f();a=tmp2+tmp1;".
    Und an welcher Stelle die Nebeneffekte eines Ausdrucks wirksam werden, ist nach Standard auch nicht festgelegt (es gibt einige definierte "Synchronisationspunkte" - aber das + gehört nicht dazu).



  • solche fragen zu diskutieren ist hirnrissig. jeder hat seine meinung, die fakten stehen fest.


Anmelden zum Antworten