El operador de incremento (++) y el operador de decremento (–) incrementan o reducen en 1 el valor almacenado en una variable, son equivalentes a +=1 y a -=1, respectivamente.
Ejemplo 1:
++x;
x+=1;
x=x+1;
Todos son equivalentes en funcionalidad, los tres incrementan el valor de x en 1.
Una peculiaridad de este operador es que puede ser usado tanto como prefijo (pre-incremento/decremento) y como sufijo (post-incremento/decremento), esto quiere decir que puede ser escrito antes del nombre de la variable (++x), o después de el nombre de la variable (x++). En expresiones simples como x++ o ++x, ambos tienen exactamente el mismo significado, En otras expresiones en donde el resultado del incremento o decremento es evaluado, tienen una importante diferencia.
En el caso de que el operador de incremento sea usado como un prefijo (++x), la expresión evalúa el valor final de x , es decir ya que se ha incrementado, por otro lado, en el caso de que sea utilizado como un sufijo (x++), el valor de x también es incrementado, pero la expresión evalúa el valor de x antes de que este sea incrementado. Lo mismo ocurre con los operadores de pre-decremento y post-decremento.
Ejemplo 2:
x = 3;
y = ++x;
// x contiene 4, y contiene 4
Ejemplo 3:
x = 3;
y = x++;
// x contiene 4, y contiene 3
En el ejemplo 2, el valor asignado a y es el valor de x después de ser incrementado, mientras que en el ejemplo 2, el valor de y es el valor que tenia x antes de ser incrementado.
He revisado varios links referente al tema y solo este fue capaz de ayudarme a entender como un operador de incremento y decremento (pre y post fijado) funciona.
Muchas gracias Federico!!