Spróbuję wyjaśnić:
1. Preinkrementacja (pre -> przed) wartość zostanie zwiększona i od razu podstawiona, przykład:
int x = 0;
std::cout << ++x;
Wyświetlone zostanie 1 (podstawione od razu).
2. Postinkrementacja (post -> po) wartość zostanie zwiększona, ale zostanie podstawiona stara wartość, przykład:
int x = 0;
std::cout << x++ << '\n';
std::cout << x;
W pierwszej linijce pojawi się 0, ale wartość została już zwiększona. Widać to w następnej linijce, gdzie zostanie wyświelone 1.
Tu jeszcze inne wyjaśnienie: http://www.programowanie.darmowefora.pl/?topic=51.0