Sono entrambe la stessa identica cosa.
L'unica differenza c'è se si dichiarano più variabili sulla stessa linea:
codice:
int* i, j, k; // i è di tipo puntatore, j e k sono di tipo intero
int *i, *j, *k; // Tutte e tre sono di tipo puntatore
La stessa cosa c'è per gli array:
codice:
// Sono equivalenti
int[] array;
int array[];
Personalmente preferisco la prima notazione, che dà maggior importanza al tipo, più che alla variabile... ed ho un personale fastidio nella dichiarazione di più variabili in linea.
Ciao.