Speicheradressen von Pointer
-
Ja
&ptr
liefert die Speicheradresse des Zeigers.
-
Super, Danke für die Klärung!
-
@zero01 sagte in Speicheradressen von Pointer:
demnach müsste das die Speicheradresse des Pointers sein
Möglicherweise meinst du das Richtige. Es ist die Adresse der Variablen ptr. ptr ist vom Typ Zeiger auf int.
-
@zero01 sagte in Speicheradressen von Pointer:
Diese Frage ist wirklich eine rein theoretische ohne Praxisbezug.
Doch, diese Frage hat einen Praxisbezug.
-
@manni66 sagte in Speicheradressen von Pointer:
ptr ist vom Typ Zeiger auf int.
Ich frage mich gerade wieviel der Verwirrung um Pointer ausschließlich der für Anfänger gewöhnungsbedürftigen Pointer-Notation geschuldet ist. Ich kann mir gut vorstellen, dass so eine Frage vielleicht nicht aufkäme, wenn das Ding
intptr
hieße und man den&
-Operator bereits für Nicht-Pointer-Typen verstanden hat. Das ist übrigens auch der Grund, weshalb ich lieberint* a
stattint *a
schreibe. Der Typ ist schließlichint*
.
-
@finnegan
IMHO ist schlechtes Lernmaterial das größte Problem. Ein Anfänger muss von Zeigern zunächst nichts wissen. Wenn man allerdings C vor C++ lehrt und std::string für fortgeschritten hält, muss man recht früh Zeiger und dynamische Arrays einführen. Dann hat der Anfänger das Konzept der Datentypen noch nicht verstanden.
-
@finnegan sagte in Speicheradressen von Pointer:
Das ist übrigens auch der Grund, weshalb ich lieber int* a statt int a schreibe. Der Typ ist schließlich int.
Schreibst du aber int* a,b,c; sind b und c mitnichten int*, sondern int.
-
@rbs2 sagte in Speicheradressen von Pointer:
@finnegan sagte in Speicheradressen von Pointer:
Das ist übrigens auch der Grund, weshalb ich lieber int* a statt int a schreibe. Der Typ ist schließlich int.
Schreibst du aber int* a,b,c; sind b und c mitnichten int*, sondern int.
Deswegen ja auch Declare one name (only) per declaration
-
@finnegan sagte in Speicheradressen von Pointer:
Grund, weshalb ich lieber int* a statt int a schreibe. Der Typ ist schließlich int.
Nun, *a ist aber auch ein
int
.
-
@rbs2 sagte in Speicheradressen von Pointer:
@finnegan sagte in Speicheradressen von Pointer:
Das ist übrigens auch der Grund, weshalb ich lieber int* a statt int a schreibe. Der Typ ist schließlich int.
Schreibst du aber int* a,b,c; sind b und c mitnichten int*, sondern int.
Und genau deswegen macht man eine Zeile pro Variable. Problem gelöst. So einfach kann es gehen.
-
Oder man schreibt
int *a, *b, *c;
, wieGottK&R das gewollt haben.
-
Dieser Beitrag wurde gelöscht!
-
int* a, * b, * c;
Oder so
-
Kann man natürlich so machen, aber dann isses halt Kacke
-
Das Anschneiden dieses Themas sollte als Trollen geahndet werden.
-
@hustbaer sagte in Speicheradressen von Pointer:
Und genau deswegen macht man eine Zeile pro Variable. Problem gelöst. So einfach kann es gehen
In C hat man halt zu viele Möglichkeiten, etwas falsch zu machen. C++ hat die Situation noch verschlimmbessert.
-
@rbs2 sagte in Speicheradressen von Pointer:
hat man halt zu viele Möglichkeiten
Man muss nicht jede sich bietende Möglichkeit nutzen.
-
@manni66
Außer man will dort was reißen: https://www.ioccc.org/
-
@hustbaer sagte in Speicheradressen von Pointer:
Und genau deswegen macht man eine Zeile pro Variable.
Der Haupt-Lesefluss von C++-Code ist ohnehin von oben nach unten, da wird es der Lesbarkeit sicher alles andere als schaden, wenn in einer Zeile möglichst wenig und bevorzugt nur eine Sache passiert.
-
Man muss sich wohl immernoch selbst ein Bild darum machen. Ich mag das Zeug lieber in einer Zeile haben. Andere nicht. Das ist geschmackssache. Der ganze Rest über den wir uns streiten ist darüber wie der unerfahrenste deine brühe am besten schluckt.