Inkrement/Dekrement/Spezielle Operatoren

  • So. Ich kenn mich grad mit den Inkrement- und Dekrementoperatoren net so aus.

    ICh weiß, dass ++x den Wert zuerst erhöht und dann gleich mit dem neuen Wert weitergemacht wird.
    Bei x++ wird zunächst mit dem alten Wert weitergerechnet und erst bei neuem Durchlauf der neue Wert genommen

    Aber bei dem Bsp check ichs einfach net:

    int x = 0, y;
    y = x++;
    cout << x << ',' << y; // Ausgabe: 1,0
    x = --y;
    cout << x << ';' << y; // Ausgabe: -1,-1


    Meiner Meinung nach (so wie ichs verstanden hätte) wäre die Ausgabe beim ersten: 0,0
    und beim zweiten: -1, -1

    Wo liegt mein Denkfehler?

    Wer FU sagt, muss auch T sagen

  • int x=0,y;
    y=x++;
    Lange geschrieben: y=x;x+=1;

    Daher: x=1,y=0

    Jetzt:
    int x=1,y=0;
    x=--y;
    Lange geschrieben:x=y-1;y-=1;

    Also: x=-1,y=-1;

    "und erst bei neuem Durchlauf der neue Wert genommen" --> Es hat nix mit Durchläufen (z.b. bei Schleifen zu tun). Es geht hier rein um Auswertung von Ausdrücken, nicht um andere Effekte.

    Dipper dipper dii dipper dii dipper dii duuu

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!