Für meine Programmiersprachen-Klasse versuche ich zu verstehen, wie Pass-by-Name und Pass-by-Value-Ergebnis funktionieren. Ich weiß, dass diese in den Mainstream-Sprachen kaum verwendet werden, aber ich möchte ein Gefühl dafür bekommen, wie sie funktionieren. Als Beispiel (sprachunabhängig):Pass-by-Name und Pass-by-Value-Ergebnis
void swap(int a, int b){
int t;
t = a;
a = b;
b = t;
}
void main() {
int val = 1, list[5] = {1, 2, 3, 4, 5}
swap(val, list[val]);
}
Was die Werte von val und Liste werden nach Swap genannt wird, wären sowohl für Pass-by-Value-Ergebnis und Pass-by-Namen.
Eine Erklärung wäre auch toll.
Aus was ich abgeleitet habe, hat es value-result: val = 2, list = {1,1,3,4,5} und name: val = 3, list = {1,2,1,4, 5}. Ich bin sehr unsicher über diese Ergebnisse.
Ändert auch die Art, wie diese beiden Methoden funktionieren, wenn ein Array übergeben wird, im Gegensatz zu einem einzelnen int? Danke für jede Hilfe im Voraus.