»« schrieb:
Dravere schrieb:
Aber wenn du mehrere Objekte erstellst, dann kann es einen Unterschied machen:
int* a, b, c; // Typen sind: int*, int, int
int *d, *e, *f; // Typen sind: int*, int*, int*
Augenblick mal! Mit diesem Codebeispiel demonstrierst du doch nur, dass es eben keinen Unterschied macht, wo der Stern steht. Er bezieht sich immer auf die Variable, völlig egal, ob er schreibtechnisch an den Typ oder an die Variable geklatscht wird. Wieso sagst du also, dass es bei mehreren Objekten einen Unterschied machen kann, wo doch dein (durchaus richtiges) Codebeispiel das genaue Gegenteil demonstriert?
Er hat das was er meint bloss schlecht formuliert.
Denn er meint vermutlich genau das was du schreibst: es macht keinen Unterschied wo der Stern steht, aber es ist wichtig zu wissen, dass er syntaktisch zur Variable gehört, und nicht zum "Basistyp".
Wenn man immer "int* a" schreibt, sieht es so aus als ob der * zu int gehören würde (was nicht stimmt). Man ist dann versucht "int* a, b" zu schreiben, und zu erwarten dass b auch ein Zeiger wäre (was nicht stimmt). Von daher ist die Schreibweise "int*" irreführend, wenn man mehrere Variablen in einer Zeile deklariert.
Wenn man also vor hat, mehrere Variablen in einer Zeile zu deklarieren, dann "sollte" man besser "int *a" schreiben, weil es dann klar ist wo der * "wirksam" ist. Es macht also einen Unterschied. Zwar nicht was die Syntax/den Compiler angeht, aber was die Lesbarkeit/Verständlichkeit angeht.