Was ist der Unterschied zwischen int * p und int p * und int * p?


Antwort 1:

Nun, es gibt nichts als:

int p *;

Es ist eine ungültige Anweisung. Mit diesem Code wird ein Kompilierungsfehler angezeigt.

Andererseits sind int * p und int * p grundsätzlich gleich. Es ist nichts als eine Frage des Stils. Für den C / C ++ - Compiler spielt es keine Rolle, ob Sie int * p oder int * p schreiben. Wenn Sie das * lieber dem Typ als der Variablen zuordnen möchten, können Sie dies tun.

Aber ein wichtiger Punkt zu beachten:

Die folgende Deklaration erstellt einen nicht zwei ganzzahlige Zeiger:

int * a, b;

Hier wird b als Ganzzahl deklariert, wobei a ein Ganzzahlzeiger ist. Diese Aussage:

int * a, * b;

deklariert sowohl a als auch b als ganzzahlige Zeiger.


Antwort 2:

Int p *: noch nicht gesehenInt * p: Da hier das * an p angehängt ist, ist nur p ein Zeiger auf eine Ganzzahl. Wenn Sie eine andere Variable deklarieren, nachdem p durch ein Semikolon getrennt ist, ist es kein Zeiger. Dh int * p, q. Hier ist p ein Zeiger auf eine ganze Zahl, aber q ist eine normale int-Variable und kein Zeiger.

Der Fall Int * p, q funktioniert ähnlich wie Int * p, q. Beide Deklarationen deklarieren p als ganzzahligen Zeiger und q als normale ganze Zahl. Int * p, q ist eine Art Deklaration, die Programmierer verwirrt.