Я изучал языки программирования в школе, и мой учитель изучал методы передачи параметров, я мог понять Call-by-Value и Call-by-Reference. Однако я до сих пор не понимаю, как работает вызов по результату, копирование в копии, вызов по имени и вызов по необходимости.
У меня есть один пример в псевдокоде, который он нам дал, у меня есть ответы, я до сих пор не могу понять, как это работает.
void test() {
int a[5];
int i;
void f(int x) {
a[i] = 9;
i++;
i = x;
}
i = 1;
a[1] = 7;
a[2] = 4;
f(a[i]);
// print i and a[1]
}
какими будут значения a[1] при каждом вызове? Я знаю, что a[2] останется прежним.