У меня есть следующая программа:Объясните разницу между вызовом по ссылке и копирования/восстановления
int A[3];
k = 1
void test(int a, int b, int c) {
c = 0;
b = 1;
A[k] = 7;
a++;
}
рядом я бегу этот метод с помощью копирования восстановления
A[0] = 2;
A[1] = 4;
k = 1;
test(A[1],A[k],k);
Я знаю, что к будет 0.
EDIT
Я хочу знать, как рассчитать это с помощью copy-restore не по значению, ссылке и т. Д. K будет 0, потому что он назначен на c и после завершения функции он скопирован в k. Вот объяснение What's the difference between call by reference and copy/restore, но Как оно ведет себя, когда два значения (a и b имеют одинаковое значение A [1]) Имеет ли значение вопрос? оба определены глобально
Эпитомность лености. На этот вопрос можно легко ответить, скомпилировав код и выполнив полученный двоичный файл. –
Я хочу понять, как это работает, а не только результат. – Maciek99
@ Maciek99 Ваш вопрос: «Каким будет результат?» Если вы ищете что-то еще, пожалуйста, отредактируйте свой вопрос. –