WinFuture-Forum.de: Call By Reference Und Call By Result - WinFuture-Forum.de

Zum Inhalt wechseln

Nachrichten zum Thema: Entwicklung
Seite 1 von 1

Call By Reference Und Call By Result


#1 Mitglied ist offline   bLaCkRaBbIt 

  • Gruppe: aktive Mitglieder
  • Beiträge: 1.433
  • Beigetreten: 08. November 04
  • Reputation: 2
  • Geschlecht:Männlich
  • Wohnort:Karlsbad

geschrieben 06. Februar 2008 - 22:35

kann mir jemand den Unterschied erklären?
0

Anzeige



#2 Mitglied ist offline   Der Kenner 

  • Gruppe: aktive Mitglieder
  • Beiträge: 574
  • Beigetreten: 30. Januar 05
  • Reputation: 0

geschrieben 07. Februar 2008 - 05:02

Es sind zwei unterschiedliche Methoden zur Parameterübergabe bei Funktionsaufrufen.
Call-by-reference bedeutet, dass der Parameter innerhalb des Funktionskörpers auf den gleichen Speicherbereich zeigt wie der in der Hauptfunktion, von wo aus die Funktion gestartet wurde. Der Begriff ist ja auch praktisch selbsterklärend, wenn man weiß, dass eine Referenz eine Zeiger-Abart ist.
Call-by-result ist mir so kein Begriff. Ich nehme an, dass du Call-by-value meinst. Dabei werden Kopien von den übergegeben Parametern erstellt.

Zusammengefasst: Referenzen als Parameter sind dann interessant, wenn der übergebene Wert verändert werden soll. Bei der Übergabe per Kopie kann lediglich die Kopie in der Funktion bearbeitet werden, d.h. die ursprünglich als Parameter übergebenen Variablen werden nicht verändert.
Wenn das obige Kriterium keine Rolle spielt, ist es praktisch dir überlassen, wie du die Übergabe handhaben willst. Typischerweise benutzt man bei intrinsischen Datentypen die Kopieübergabe, bei Zusammengesetzten die Referenzübergabe.

So, hoffe, das war halbwegs verständlich. Naja, ist ja auch schon 5...
0

#3 Mitglied ist offline   gl4di4t0r 

  • Gruppe: aktive Mitglieder
  • Beiträge: 419
  • Beigetreten: 03. Oktober 04
  • Reputation: 0
  • Geschlecht:Männlich
  • Wohnort:Bärlin

geschrieben 07. Februar 2008 - 06:20

Also, ich frage mich, warum einige Leute anscheinend erst irgendwo posten, und nicht mal eine Suchmaschine anwerfen...
http://de.wikipedia....ferenzparameter
http://de.wikipedia....28Informatik%29 (besonders: Parameterübergabe)
2x Wikipedia-Suche...

Dieser Beitrag wurde von gl4di4t0r bearbeitet: 07. Februar 2008 - 06:21


Eingefügtes Bild
Eingefügtes Bild
CCNA - Cisco Certified Network Associate
DropBox Online Sync-Speicher
0

#4 Mitglied ist offline   bLaCkRaBbIt 

  • Gruppe: aktive Mitglieder
  • Beiträge: 1.433
  • Beigetreten: 08. November 04
  • Reputation: 2
  • Geschlecht:Männlich
  • Wohnort:Karlsbad

geschrieben 07. Februar 2008 - 13:58

@der kenner: danke für die lange ausführung, aber das war mir klar. die frage ging schon um call by result
@gl4adi4t0r: den ersten link hatte ich auch schon angeschaut, da steht aber nichts von call by result. fündig wurde ich tatsächlich im 2ten, den ich bei meiner suche nicht gefunden hatte

Zitat

Wertergebnisparameter (call by value/return oder call by value and result) erzeugen wie Wertparameter beim Aufruf zunächst eine Kopie des tatsächlichen Parameters. Bei Unterprogrammende wird der Inhalt des Parameters jedoch zurückgeschrieben. Dieser Parameterübergabemechanismus kann bei nebenläufigen Programmen eine andere Wirkung als die Verwendung von Referenzparametern haben, da während der Ausführungszeit des Unterprogramms ein anderer Thread auf die Variable in der aufrufenden Prozedur zugreifen kann.

0

#5 Mitglied ist offline   gl4di4t0r 

  • Gruppe: aktive Mitglieder
  • Beiträge: 419
  • Beigetreten: 03. Oktober 04
  • Reputation: 0
  • Geschlecht:Männlich
  • Wohnort:Bärlin

geschrieben 07. Februar 2008 - 14:33

Beitrag anzeigenZitat (bLaCkRaBbIt: 07.02.2008, 13:58)

[...]
@gl4adi4t0r: [...] fündig wurde ich tatsächlich im 2ten, den ich bei meiner suche nicht gefunden hatte

Komisch, hab eig nur call-by-result in die Suche eingegeben und die Ergebnisse kurz durchgeguckt :)

Eingefügtes Bild
Eingefügtes Bild
CCNA - Cisco Certified Network Associate
DropBox Online Sync-Speicher
0

#6 Mitglied ist offline   Der Kenner 

  • Gruppe: aktive Mitglieder
  • Beiträge: 574
  • Beigetreten: 30. Januar 05
  • Reputation: 0

geschrieben 07. Februar 2008 - 16:14

Zitat

einige Leute anscheinend erst irgendwo posten, und nicht mal eine Suchmaschine anwerfen

Ja, ich bin schuldig, zumindest mitschuldig. Aber wenigstens hab ich was gelernt. :)
0

Thema verteilen:


Seite 1 von 1

1 Besucher lesen dieses Thema
Mitglieder: 0, Gäste: 1, unsichtbare Mitglieder: 0