Nejlepší odpověď
Neexistuje nic jako:
int p*;
Je to neplatné prohlášení. S tímto kódem se zobrazí chyba kompilace.
Na druhou stranu int * p a int * p jsou v zásadě stejné. Není to nic jiného než stylová záležitost. Pokud jde o kompilátor C / C ++, nezáleží na tom, zda píšete int * p nebo int * p. Pokud tedy dáváte přednost asociaci * s typem spíše než s proměnnou, neváhejte a udělejte to.
Je však třeba si uvědomit jeden důležitý bod:
Následující deklarace vytvoří jeden dva celočíselné ukazatele:
int* a,b;
Zde b je deklarováno jako celé číslo, kde jako a je celočíselný ukazatel. Toto prohlášení:
int *a,*b;
deklaruje a a b jako celočíselné ukazatele.
Odpověď
Int p *: dosud není viděn Int * p: protože zde je * připojeno k p, takže pouze p bude Ukazatel na celé číslo. pokud deklarujete jinou proměnnou po p odděleném středníkem, nebude ukazatel. Tj. int * p, q. Zde p bude ukazatel na celé číslo, ale q bude normální proměnná int a ne ukazatel.
Případ Int * p, q funguje podobně jako Int * p, q. Deklarace deklarují p jako celočíselný ukazatel a q jako normální celé číslo. Int * p, q je typ deklarace, která končí matoucími programátory.