Verständnisproblem mit Pointern
-
Huch, ich hoffe ich habe dich nicht zu dolle verwirrt.
Ich denke du hast das schon verstanden mit Call by Value und Call by Reference.
Call by Value: Kopie der Variablen
Call by Reference: Kopie eines Zeigers auf die Variable (Referenze auf etwas).
also zb
void Plus(int a, int b, int *c) { *c = a + b; // und jetzt hab ich auch erst gescheckt was du mit mehreren Rückgabewerten meintest :) } int main() { int a=1,b=2,c; Plus(a, b, &c); printf("c=%d, c); // Ausgabe: c=3 }
a und b by value und c by refrerence.
-
Call bei Reference hast du schon richtig verstanden, nur übergibst du ja wissentlich die Adresse von der Variablen.
Das macht der Compiler nicht versteckt wie z.B. in Pascal oder C++.Du übergibst als Wert die Adresse. Daher ist auch das ein Call by Value (halt der Adresse).
Wenn in C von 'Call bei Reference' die Rede ist, ist damit die Übergabe der Adresse gemeint.
-
hmm wäre einer von euch vielleicht mal so nett und würde mir eine klausuraufgabe stellen in der ich irgendetwas mit zeigern machen muss? In dem Buch was ich hier habe sind die aufgaben irgendwie zu einfach ...
Ich selbst bin zu unkreativ um mir eigene sachen auszudenken. ich wüsste nicht wie ich das mit den Zeigern weiter festigen kann.