verunsichert
-
int func(int * t) { }t wird hier als "call by reference" uebergeben oder??
bin stark verunsichert
-
verunsichert schrieb:
t wird hier als "call by reference" uebergeben oder??
t selbst ist eine ganz normale Variable vom Typ int* und wird natürlich per Value übergeben.
-
aber warum steht dann hier http://www.user.tu-berlin.de/looprjbb/it/C_Kurs/funktion/Html/lektion_6/lektion_6.html#lek_6_U4
das es "call by reference" ist ??
-
Das ist ein Pointer, ne. Demnach steht darin die Adresse einer Variablen. In dem Sinn ist es call by value, ist aber call by reference weil du ja nicht den Wert mit dem du arbeitest(der int) direkt uebergibst..
-
Weil int* quasi eine 'Referenz' auf einen int ist. Obwohl da C++ unter int* Zeiger genannt wird, eine C++ Referenz wäre int& ..

-
In C gibts nur Call-by-value. Man kann mit Pointern Call-by-reference simulieren, so dass manche diese Technik selbst als Call-by-reference bezeichnen. IMHO ist das aber irreführend, u.a. auch, weil es in C++ mit den Referenzen noch eine Art gibt, die es eher verdient hätte, Call-by-reference zu heißen.
-
in C gibt es noch keine Referenzen, deshalb werden als "Ersatz" Pointer verwendet. t ist eine Kopie eines Zeigers und wird "by value" übergeben, der Inhalt von t zeigt auf eine gegebene int-Variable, auf die du damit "by reference" zugreifen kannst.
-
ok gut, eigentlich ist es ja egal wie man dazu sagt Hauptsache ist ja das man weis wie man es anwendet

danke fuer die hilfe