Я столкнулся с путаницей, когда передаю переменную x переменной y по ссылке, тогда как x, так и y должны теперь указывать на одно и то же местоположение, но вывод, который я получаю, не является одна и та же.Значение вызываемого абонента и вызывающего абонента при использовании вызова по ссылкам
Полная подробно обсуждение здесь:http://gateoverflow.in/94182/programming-output Я старался изо всех сил, чтобы объяснить вещи для пользователя, но я до сих пор не в состоянии convience его полностью, может быть, я не хватает какой-то концепции.
грубый пример кода:
var b : int;
procedure M (var a, int)
begin
a= a*a;
print(a);
end;
procedure N
begin
b= b+1;
M(b);
end;
begin
b=12;
N;
print(b);
end;
Я полагаю, что, как и в вопросе дается, что переменные являются статическими, так что значение аб не должно изменяться от 13, но значение a должно быть 13 * 13 = 169, но мои рассуждения противоречат тому, что называется ссылкой.
Скопируйте и вставьте свой код здесь, а не публикуйте снимок экрана. Кроме того, это выглядит как Pascal, а не C. –
«когда я передаю переменную x в переменную y по ссылке, тогда как x, так и y должны теперь указывать на одно и то же местоположение». Это правильно. Какая часть вышеуказанного кода вызывает трудности в вашем понимании? –
Выходная часть, я получаю a = 169 b = 13. но в идеале это должно быть 169 для обоих? –