unerwartete ausgabe bei increment



  • hi, hab hier ein stück code:

    #include <iostream>
    using namespace std;
    
    int main(void)
    {
    	int i = 2;
    	cout << ++i << " " << i++;
    }
    

    Hierbei sind nun mehrere Ding, die ich nicht verstehe. Erstens wird mir in der cout Zeile als warnung angeigt: "operation on i may be undefined" und dann kommt das komische ergebniss von "4 2" heraus. Weis jemand woran das liegt?



  • Eine Variable (in dem Fall i) darf pro Anweisung nur einmal modifiziert werden. Du machst das halt zweimal. Ein anderes Beispiel was man auch nicht darf wäre z.B.:

    i = i++
    

    Edit: Das heisst, dass das Ergebnis so ziemlich alles sein kann. Von dem was du bekommst, bis hin zum Untergang der Welt.



  • TacX hat da recht, habe deinen Code auch mal ausprobiert und bei mir kommt da 3 3 bei raus.


Anmelden zum Antworten