Mejor respuesta
Bueno, no hay nada como:
int p*;
Es una declaración no válida. Obtendrá un error de compilación con este código.
Por otro lado int * p e int * p son básicamente lo mismo. No es más que una cuestión de estilo. En lo que respecta al compilador C / C ++, no importa si escribe int * p o int * p. Por lo tanto, si prefiere asociar el * con el tipo en lugar de la variable, no dude en hacerlo.
Pero un punto importante a tener en cuenta:
La siguiente declaración crea uno que no dos punteros enteros:
int* a,b;
Aquí b se declara como entero, donde como a es un puntero entero. Esta declaración:
int *a,*b;
declara ayb como punteros enteros.
Respuesta
Int p *: no se ha visto todavía Int * p: como aquí el * se adjunta ap, por lo que solo p será un puntero a un entero. Si declara otra variable después de p separada por punto y coma, no será un puntero. Es decir. int * p, q. Aquí p será un puntero a un entero pero q será una variable int normal y no un puntero.
El caso Int * p, q funciona de manera similar a Int * p, q. Ambas declaraciones declaran p como un puntero entero y q como un entero normal. Int * p, q es un tipo de declaración que termina confundiendo a los programadores.