Тест
Вопрос 3
Что напечатает эта программа?
Go
package main
import "fmt"
func add(value *int) {
newVal := *value + 1
value = &newVal
}
func main() {
val := 1
add(&val)
fmt.Println(val)
}
Параметр `value` — копия указателя: через `*value` можно менять значение по исходному адресу, но присваивание `value = &newVal` меняет только локальную копию указателя в `add`, а не `val` в `main`. Увеличенное значение в `newVal` обратно в `val` не попадает, поэтому остаётся `1`.