В своем классе языков программирования я пытаюсь понять, как работают передача по имени и передача по значению.Я понимаю, что они почти не используются в основных языках, но я хочу понять, как они работают.В качестве примера (не зависит от языка):
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]);
}
Какими будут значения val и list после вызова swap как для pass-by-value-result, так и для pass-by-name.
Объяснение тоже было бы здорово.
Из того, что я вывел, он получил значение-результат: val = 2, list = {1,1,3,4,5} и name: val = 3,список = {1,2,1,4,5}.Я очень не уверен в этих результатах.
Кроме того, это меняет способ работы обоих этих методов, когда массив передается в отличие от одного целого?Спасибо за любую помощь заранее.