Jaký je rozdíl mezi int * p a int p * a int * p?


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.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *