Назад к вопросам
JuniorТеорияЧасто
Что выведет программа?
package main
import "fmt"
func main() {
x := 1
p := &x
y := *p
*p = 5
fmt.Println(x, y)
}5 1
- Ждать, что
xостанется1:p := &xхранит адресx, а не копию, поэтому*p = 5пишет в самx. - Ждать, что
yизменится вслед заx:y := *pкопирует значение1, на котороеpуказывает в этот момент, иyостаётся1.
- Что напечатает программа, если вместо
y := *pнаписатьp = &y? - Какой тип у
pи почему в нём нельзя хранить адресstring?