Array: Heap oder Stack?
-
mcr schrieb:
PS: Dies ist auch der Grund, dass C keine Variable per call-by-reference
übergeben kann. Es ist immer alles call-by-value.was hat das damit zu tun?
-
nichts!
-
EStoll schrieb:
mcr schrieb:
PS: Dies ist auch der Grund, dass C keine Variable per call-by-reference
übergeben kann. Es ist immer alles call-by-value.was hat das damit zu tun?
Die Variablen in der Parameterliste werden ebenfalls als lokale
Variablen angelegt.Aber es hat nichts weiter zu sagen.
-
mcr schrieb:
Die Variablen in der Parameterliste werden ebenfalls als lokale
Variablen angelegt.muss nicht. das weiterreichen von parametern an funktionen ist ein eigener mechanismus.
-
CStoll schrieb:
Edit: Und bitte versuch nicht, meinen Namen zu imitieren - denk dir lieber einen eigenen aus
ok, ich nehme "DorisDieKlinge". den gibts bestimmt noch nicht.
-
mcr schrieb:
PS: Dies ist auch der Grund, dass C keine Variable per call-by-reference übergeben kann. Es ist immer alles call-by-value.
Hallo,
was heisst bei "C" .. ist das unter C++ anders?Ich habe immer eine "lokale" Variable in den Funtkionsparametern (auch wenn diese als Pointer definiert ist und somit auf dem Stack liegt) oder meinst du etwas anderes?
Wenn ich z.B. ein char-array an eine Funktion übergebe, dann ist das immer ein call-by-reference... auch in C... oder verstehe ich dich falsch?
Gruß
codefrag
-
codefrag schrieb:
Wenn ich z.B. ein char-array an eine Funktion übergebe, dann ist das immer ein call-by-reference... auch in C...
logisch gesehen ist es 'call by reference'. technisch gesehen wird bei der übergabe der wert des pointers kopiert.
-
codefrag schrieb:
was heisst bei "C" .. ist das unter C++ anders?
void cpp_function(type& by_reference); void cpp_function(type* by_value); void cpp_function(type*& by_reference);
-
IStoll schrieb:
codefrag schrieb:
Wenn ich z.B. ein char-array an eine Funktion übergebe, dann ist das immer ein call-by-reference... auch in C...
logisch gesehen ist es 'call by reference'. technisch gesehen wird bei der übergabe der wert des pointers kopiert.
Ja wie schon gesagt... die Übergabevariable (Pointer) liegt ja auf dem Stack.
Mir war nur nicht bewusst das es unter C++ anders geht
-
codefrag schrieb:
Mir war nur nicht bewusst das es unter C++ anders geht
c++ hat noch diese starren compile-time referenzen (mit dem & vorweg). ich nehme an die wurden erfunden, damit die sache mit den templates und operatorüberladung halbwegs funzt. pointer unter c++ sind eigentlich (mit gewissen ausnahmen) das selbe wie in C.