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.