Care este diferența dintre int * p și int p * și int * p?


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.

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *