Передача по значению результата и значениям переменных после вызова метода - PullRequest
0 голосов
/ 07 мая 2018

Во-первых, я понимаю, что код настроен для передачи по значению, я думаю, что вопрос является гипотетическим.

Кроме того, это не домашнее задание, оно из учебного пособия для выпускного.

Это может показаться дубликатом, но в других потоках большое внимание уделялось тому, что код не настраивается ни для чего, кроме передачи по значению, поэтому комментарии были не очень актуальны.

Я хотел бы знать, генерируют ли b) и c) один и тот же ответ. Я решил проблему и у меня b) и c) с тем же результатом, но я чувствую, что это может быть небольшим подвохом и легко что-то упустить. Вот вопрос и код:

Рассмотрим следующую программу, написанную на синтаксисе C:

void  swap( int  a, int  b) 
{ 
    int  temp;   
    temp = a;   
    a = b;   
    b = temp; 
}
void  main() 
{ 
    int  value = 2, list[5] = {1, 3, 5, 7, 9};   
    swap(value, list[0]);   
    swap(list[0], list[1]);   
    swap(value, list[value]); 
}

Для каждого из следующих методов передачи параметров, каковы все значения переменных и их список после каждого из трех вызовов swap?

а) Передано по значению

б) Передано по ссылке

в) Передано по значению-результату

...