Legjobb válasz
Nos, nincs semmi:
int p*;
Ez egy érvénytelen utasítás. Ezzel a kóddal fordítási hibát kap.
Másrészt int * p és az int * p alapvetően azonos. Ez nem más, mint stílus kérdése. Ami a C / C ++ fordítót illeti, nem számít, hogy int * p vagy int * p írsz. Így, ha a * -t inkább a típussal, mint a változóval szeretné társítani, nyugodtan tegye meg.
De egy fontos megjegyzendő dolog:
A következő deklaráció nem két egész mutató:
int* a,b;
Itt b értéket egész számnak, ahol egész számként deklaráljuk. Ez a kijelentés:
int *a,*b;
az a és a b számot is egész mutatóként deklarálja.
Válasz
Int p *: még nem láttam Int * p: mivel itt a * csatolva van p-hez, így csak p lesz az egész szám mutatója. ha a p után pontosvesszővel elválasztva deklarál egy másik változót, akkor nem lesz egy mutató. Azaz. int * p, q. Itt p lesz egész számra mutató mutató, de q normál int változó, és nem mutató.
Az Int * p, q eset hasonlóan működik, mint az Int * p, q. Mindkét deklaráció p-t egész mutatóként, a q-t pedig normál egész számként deklarálja. Az Int * p, q egy olyan típusú deklaráció, amely összezavarja a programozókat.