sineP
28.12.2016, 15:03
Hallo, ich habe eine Frage zu Zeigern:
und zwar geht es darum, Werte von Zeigern zu übergeben und Adressen zu übergeben. Ich bin mir bei der Sache nicht 100% im klaren. Es wäre also sehr nett von euch, wenn jemand mitteilen kann, ob mein Wissen so korrekt ist, oder ob ich da ein Fehler mache bzw. was falsch verstehe.
Beispiel 1:
zeiger1 = zeiger2;
Da kein Dereferenzierungsoperator angegeben ist, wird die Adresse von zeiger2 an zeiger1 übergeben. Das heißt: Ändere ich etwas an Zeiger 1, wird dies auch beim original (zeiger2) geschehen, da ja beide die gleiche Adresse haben.
So weit richtig?
Beispiel 2:
(*zeiger1).wert = 20;
Durch den Dereferenzierungsoperator, wird der Wert "wert" von zeiger1 verändert bzw. auf 20 geändert.
Alternativ geht auch:
zeiger1->wert = 20;
richtig?
Beispiel3:
zeiger1 = &variable;
Der &-Operator vor der variable, gibt an, das mit der Adresse gearbeitet werden soll statt mit dem Wert der Variablen. Dem zeiger1 wird also die Adresse der Variablen "variable" übergeben. Man kann jetzt z.B. werte ausgeben oder verändern:
(*zeiger1) = 20
Gibt es hier eigentlich auch eine alternative wie z.B. weiter oben unter Beispiel 2 mit dem -> Operator? so funktionierts nämlich nicht:
zeiger1-> = 20;
Soweit alles richtig? Gibt es noch andere Möglichkeiten?
vielen Dank!
und zwar geht es darum, Werte von Zeigern zu übergeben und Adressen zu übergeben. Ich bin mir bei der Sache nicht 100% im klaren. Es wäre also sehr nett von euch, wenn jemand mitteilen kann, ob mein Wissen so korrekt ist, oder ob ich da ein Fehler mache bzw. was falsch verstehe.
Beispiel 1:
zeiger1 = zeiger2;
Da kein Dereferenzierungsoperator angegeben ist, wird die Adresse von zeiger2 an zeiger1 übergeben. Das heißt: Ändere ich etwas an Zeiger 1, wird dies auch beim original (zeiger2) geschehen, da ja beide die gleiche Adresse haben.
So weit richtig?
Beispiel 2:
(*zeiger1).wert = 20;
Durch den Dereferenzierungsoperator, wird der Wert "wert" von zeiger1 verändert bzw. auf 20 geändert.
Alternativ geht auch:
zeiger1->wert = 20;
richtig?
Beispiel3:
zeiger1 = &variable;
Der &-Operator vor der variable, gibt an, das mit der Adresse gearbeitet werden soll statt mit dem Wert der Variablen. Dem zeiger1 wird also die Adresse der Variablen "variable" übergeben. Man kann jetzt z.B. werte ausgeben oder verändern:
(*zeiger1) = 20
Gibt es hier eigentlich auch eine alternative wie z.B. weiter oben unter Beispiel 2 mit dem -> Operator? so funktionierts nämlich nicht:
zeiger1-> = 20;
Soweit alles richtig? Gibt es noch andere Möglichkeiten?
vielen Dank!