Der Unterschied ist nicht, dass a++ -> a=a+1 bzw a-- -> a=a-1 und ++a -> a=1+a bzw --a -> a=1-a. Diese Annahme fürt vor Allem bei --a häufig zu Fehlern.
Sowohl a++ / a-- und ++a /--a addieren bzw. subtrahieren den Wert 1 zu / von a.
Sprich --a -> a=a-1 und nicht 1-a!
Der große Unterschied ist jedoch, dass prä-Inkremente / Dekremente sofort der Variablen zugewisen werden und post-inkrementierte / dekrementierte Variablen erst nach der nächsten Verwendung um 1 erhöht werden.
Beispielcode in C++
01: int i = 1; 02: cout << ++i << endl; 03: cout << i++ << endl; 04: cout << ++i << endl;
Beispielcode Java
01: int i = 1; 02: System.put.println(++i); 03: System.put.println(i++); 04: System.put.println(++i); Ausgabe: 2 2 4