Melhor resposta
Bem, não há nada como:
int p*;
É uma declaração inválida. Você obterá um erro de compilação com este código.
Por outro lado, int * p e int * p são basicamente os mesmos. É apenas uma questão de estilo. No que diz respeito ao compilador C / C ++, não importa se você escreve int * p ou int * p. Portanto, se você preferir associar o * ao tipo em vez da variável, sinta-se à vontade para fazê-lo.
Mas um ponto importante a ser observado:
A seguinte declaração cria um não dois ponteiros inteiros:
int* a,b;
Aqui b é declarado como inteiro, onde como a é um ponteiro inteiro. Esta declaração:
int *a,*b;
declara aeb como ponteiros inteiros.
Resposta
Int p *: ainda não vi Int * p: como aqui o * está anexado a p, então apenas p será um Ponteiro para inteiro. se você declarar outra variável após p separada por ponto-e-vírgula, ela não será um ponteiro. Ou seja int * p, q. Aqui, p será um ponteiro para inteiro, mas q será uma variável normal int e não um ponteiro.
O caso Int * p, q funciona de maneira semelhante a Int * p, q. Ambas as declarações declaram p como um ponteiro de inteiro e q como um inteiro normal. Int * p, q é um tipo de declaração que acaba confundindo os programadores.