Mi a különbség az int * p és az int p * és az int * p között?


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.

Vélemény, hozzászólás?

Az email címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük