Non precisamente:

i++ si comporta diversamente da i = i + 1 e da ++i

Vediamo di capire cosa comporta:
codice:
int a = 0;
int i = 10;
a = i++;   // Postincremento
In questo frammento la variabile a assumerà il valore della variabile i(ossia 10). Dopodichè la variabile i verrà incrementata e assumerà il valore 11.
In questo caso, invece, succede una cosa diversa:
codice:
int a = 0;
int i = 10;
a = ++i;  // Preincremento
Qui la variabile a assumerà valore 11, perchè prima viene incrementata la variabile i, poi verrà effettuato l'assegnamento.

Ciao.