Передача параметра по значению
Передача параметра по значению — это способ вызова подпрограммы, при котором она получает копию переданного значения. Поэтому изменения параметра внутри подпрограммы обычно не изменяют исходную переменную в вызывающей части программы.
Как это работает
Сначала вычисляется значение аргумента. Затем оно присваивается формальному параметру подпрограммы. Внутри подпрограммы параметр становится отдельной локальной переменной. После завершения работы подпрограммы эта копия исчезает, а исходная переменная сохраняет прежнее значение.
Вызов Increase(x) передаёт в параметр a копию значения переменной x. Изменение a не меняет x.
procedure Increase(a) a := a + 1 end procedure x := 5 Increase(x) print(x) // 5
При передаче параметра по ссылке подпрограмма получает доступ к исходной переменной, поэтому присваивание параметру может изменить её значение. При передаче по значению изменяется только копия. В некоторых языках особенности работы со сложными объектами могут отличаться, но в школьных задачах важно отслеживать именно указанное правило передачи.
После выполнения procedure F(a): a := a * 2; end; x := 4; F(x) чему равно x, если параметр передаётся по значению?
Что важно в заданиях
- Отделяйте имя исходной переменной от имени формального параметра.
- Изменение параметра по значению учитывайте только внутри текущего вызова.
- После возврата из подпрограммы проверяйте, изменилась ли исходная переменная: при передаче по значению — нет.
Главное
- Подпрограмма получает копию значения аргумента.
- Изменение параметра не изменяет исходную переменную.
- Для сравнения используйте передачу параметра по ссылке: там изменения могут сохраняться.