Jak chyba zauważyłeś istnieją dwa rodzaje operatorów zwiększania ++zmienna oraz
zmienna++. Różnica miedzy zmienna++, a ++zmienna jest niewielka, ale istotna.
Np mamy taki fragment kodu:
int x=10;
W tym wypadku najpierw zostanie wywołana funkcja(10), a później x zostanie
zwiększony. Natomiast gdy zastosujemy w tym miejscu drugi operator:
funkcja(x++);
funkcja(++x);
to najpierw x zostanie zwiększony a potem wywołana funkcja, a wiec będzie
funkcja(11).
Podsumowując operator ++x, jest najwcześniej wykonywany, przed wywołaniem funkcji
natomiast x++, jest wykonywany po zakończeniu wszystkich operacji w danej
instrukcji. To samo dotyczy operatorów zmniejszania. --x i x--
Przyjrzyj się
dołączonemu kodowi źródłowemu. Funkcja zwraca tam wartość x taką jaką dostała
przy wywołaniu. Stosując wszystkie 4 operatory mamy 3 różne wyniki.