Методы передачи параметров

Я изучал языки программирования в школе, и мой учитель изучал методы передачи параметров, я мог понять 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] останется прежним.


person amenocal    schedule 10.12.2013    source источник


Ответы (1)


Я думаю, это поможет вам лучше понять:

http://courses.cs.washington.edu/courses/cse505/99au/imperative/parameters.html

person SoulRayder    schedule 11.12.2013