Во-первых, я понимаю, что код настроен для передачи по значению, я думаю, что вопрос является гипотетическим.
Кроме того, это не домашнее задание, оно из учебного пособия для выпускного.
Это может показаться дубликатом, но в других потоках большое внимание уделялось тому, что код не настраивается ни для чего, кроме передачи по значению, поэтому комментарии были не очень актуальны.
Я хотел бы знать, генерируют ли 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?
а) Передано по значению
б) Передано по ссылке
в) Передано по значению-результату