Cel mai bun răspuns
Ei bine, nu există nimic ca:
int p*;
Este o declarație nevalidă. Veți primi o eroare de compilare cu acest cod.
Pe de altă parte int * p și int * p sunt practic aceleași. Nu este decât o chestiune de stil. În ceea ce privește compilatorul C / C ++, nu contează dacă scrieți int * p sau int * p. Astfel, dacă preferați să asociați * cu tipul mai degrabă decât cu variabila, nu ezitați să faceți acest lucru.
Dar un punct important de remarcat:
Declarația următoare creează una care nu două indicatori întregi:
int* a,b;
Aici b este declarat ca întreg, unde a este indicatorul întreg. Această afirmație:
int *a,*b;
declară atât a cât și b ca indicatori întregi.
Răspuns
Int p *: nu am văzut încă Int * p: ca aici * este atașat la p, deci numai p va fi un Pointer to integer. dacă declarați o altă variabilă după p separată de punct și virgulă, nu va fi un indicator. Adică int * p, q. Aici p va fi un pointer către întreg, dar q va fi o variabilă int normală și nu un pointer.
Cazul Int * p, q funcționează similar cu Int * p, q. Ambele declarații declară p ca un indicator întreg și q ca un număr întreg normal. Int * p, q este un tip de declarație care ajunge să încurce programatorii.