In entrambi i casi la variabile i viene incrementata prima della verifica i<n. Quindi sì, direi che è giusto ottenere lo stesso risultato. Pre-incremento e post-incremento si riferiscono all'istruzione dove sono contenuti, non alle successive. In questo caso pensa semplicemente che i venga incrementata alla fine di ogni ciclo.

Un po' come se fosse:

codice:
while (i < n)
{
   //....
   i++; // (++i è lo stesso, solo un minimo più veloce mi pare)
}