Учих за езиците за програмиране в училище и учителят ми разглеждаше методите за предаване на параметри, можех да разбера 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]
}
какви биха били стойностите на [1] при всяко извикване? Знам, че [2] ще остане същият.