package main
import "fmt"
type per struct {
id int
name string
}
func main () {
a := "123"
b := &a
fmt.Printf("type: %T, address: %p, value: %v\n", *b,b,*b)
fmt.Printf("type: %T, address: %p, value: %v\n", a, a, a)
fmt.Printf("type: %T, address: %p, value: %v\n", &b, &b, &b)
fmt.Printf("type: %T, address: %p, value: %v\n", &a, &a, &a)
fmt.Printf("type: %T, address: %p, value: %v\n", b, b, b)
changeS(&a)
fmt.Printf("type: %T, address: %p, value: %v\n", a, &a, a)
d := [3]int{1,2,3}
fmt.Println(d)
change(&d)
fmt.Println(d)
var zhuang per=per{id: 1, name: "zhuang"}
var yan=new(per)
yan.id=10
fmt.Println("zhuang: ", zhuang)
fmt.Println("yan: ", *yan)
hao := *yan
hao.id=999
fmt.Println("yan: ", yan)
fmt.Println("hao: ", hao)
f := zhuang.chans()
fmt.Println(f.id)
fmt.Println(zhuang)
}
func changeS(b *string) {
*b = "changed"
fmt.Println(*b)
}
func change(b *[3]int) {
b[0] = 4
fmt.Println(*b)
}
func (p per) chans() per {
p.id = 5
return p
}
func chans2(p *per) {
p.id = 7
fmt.Println(*p)
}
func chans3(p per) {
p.id = 7
fmt.Println(p)
}
https: