Запомните:
когда мы так пишем: a++, то переменная возвращает сначала старое значение а потом увеличивает
а так: ++а, сначала увеличивает значение и потом возвращает новое значение
Потому что есть несколько вариантов использования оператора инкрементации с разным поведением, что отлично описано в мануале: Reference -> Operators -> Increment