Wat is het verschil tussen int * p en int p * en int * p?


Beste antwoord

Nou, er is niets als:

int p*;

Het is een ongeldige verklaring. Je krijgt een compilatiefout met deze code.

Aan de andere kant int * p en int * p zijn in principe hetzelfde. Het is niets anders dan een kwestie van stijl. Wat de C / C ++ compiler betreft, maakt het niet uit of je int * p of int * p schrijft. Dus als u de * liever met het type dan met de variabele associeert, doe dat dan gerust.

Maar een belangrijk punt om op te merken:

De volgende declaratie creëert een niet twee integer-pointers:

int* a,b;

Hier wordt b gedeclareerd als integer, waarbij a een integer-pointer is. Deze verklaring:

int *a,*b;

declareert zowel a als b als integer pointers.

Antwoord

Int p *: nog niet gezien Int * p: aangezien hier de * is gekoppeld aan p, dus alleen p is een pointer naar een geheel getal. als je een andere variabele declareert na p gescheiden door puntkomma, zal het niet zijn een aanwijzer. D.w.z. int * p, q. Hier is p een pointer naar integer, maar q is een normale int-variabele en geen pointer.

Het geval Int * p, q werkt vergelijkbaar met Int * p, q. Beide declaraties declareren p als een integer pointer en q als een normaal geheel getal. Int * p, q is een soort declaratie die programmeurs in verwarring brengt.

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *