Какую ошибку содержит данный код?

  • 30 августа 2023 г. 11:16
Ответы на вопрос 2
Ошибка в данном коде заключается в том, что значение racket.x не изменяется в функции moveracket после получения значения move в функции main из-за того, что параметры в функциях передаются по значению, а не по ссылке.

В функции main в строке racket := moveracket(racket, move) вместо передачи и изменения значения racket.x, создается новая локальная переменная racket, которая принимает значение, возвращенное функцией moveracket.

Для того чтобы изменить значение переменной racket.x в функции moveracket и сохранить изменения в основной программе, можно использовать передачу аргумента по ссылке, а не по значению. Для этого можно использовать указатель на объект racket или его ссылку.
if(m == 'd') racket.x += 1;
if(m == 'a') racket.x -= 1;
racket.x += 1; // если нужно, чтобы результат сохранился
Похожие вопросы