Call-by-reference, value und name

Ich versuche zu verstehen, der konzeptionelle Unterschied zwischen call-by-reference, value und name.

So, ich habe der folgende pseudocode:

foo(a, b, c)
{
   b =b++;
   a = a++;
   c = a + b*10
}

X=1;
Y=2;
Z=3;
foo(X, Y+2, Z);

Was die X -, Y-und Z nach der foo aufrufen, wenn a, b, und c sind alle call-by-reference?
wenn a, b, und c sind call-by-value/result?
wenn a, b, und c sind call-by-name?

Anderes Szenario:

X=1;
Y=2;
Z=3;
foo(X, Y+2, X);

Ich versuche, Holen Sie sich einen Vorsprung für das Studium für einen bevorstehenden endgültigen und dies schien wie eine gute review-problem zu übergehen. Pass-by-name ist auf jeden Fall die meisten mir Fremd.

  • Bewegen Sie die Maus über die tags, die Sie setzen Sie einfach auf die Frage und sehen Sie sich die Beschreibungen. Ich habe noch nie gehört, der pass von Namen, es sei denn, das ist eine Art der Reflexion.
  • Vorbei, Name: stackoverflow.com/questions/838079/...
  • Wissen Sie, was Pointer sind? Übergabe by reference ist nur, wird ein Zeiger übergeben, während die übergabe per Wert übergeben wird den Wert selbst.
  • en.wikipedia.org/wiki/Evaluation_strategy
InformationsquelleAutor workinMan | 2013-04-05
Schreibe einen Kommentar