Migliore risposta
Bene, non cè niente come:
int p*;
È unistruzione non valida. Riceverai un errore di compilazione con questo codice.
Daltra parte int * p e int * p sono fondamentalmente gli stessi. Non è altro che una questione di stile. Per quanto riguarda il compilatore C / C ++, non importa se scrivi int * p o int * p. Quindi, se preferisci associare * al tipo piuttosto che alla variabile, sentiti libero di farlo.
Ma un punto importante da notare:
La seguente dichiarazione ne crea uno non due puntatori interi:
int* a,b;
Qui b è dichiarato come intero, dove come a è un puntatore intero. Questa istruzione:
int *a,*b;
dichiara sia a che b come puntatori interi.
Risposta
Int p *: non è stato ancora visto Int * p: poiché qui * è allegato a p, quindi solo p sarà un Puntatore a un numero intero. Se dichiari unaltra variabile dopo p separata da punto e virgola, non sarà “t un puntatore. Cioè int * p, q. Qui p sarà un puntatore a numero intero ma q sarà una normale variabile int e non un puntatore.
Il caso Int * p, q funziona in modo simile a Int * p, q. Entrambe le dichiarazioni dichiarano p come un puntatore intero e q come un normale intero. Int * p, q è un tipo di dichiarazione che finisce per confondere i programmatori.