Go语言中&和*的区别
- &是取地址符。
- *可以表示一个变量是指针类型,也可以表示指针类型变量所指向的存储单元,也就是这个地址所指向的值。(指针也是有地址的,所以也可以用&取地址)
package main
import "fmt"
type Person struct {
name string
age int
}
func main() {
yi := Person{
name: "xiaoyi",
age: 20,
}
fmt.Println("yi", yi, " &yi", &yi)
er := &Person{
name: "xiaoer",
age: 22,
}
fmt.Println("er", er, " &er", &er)
var san *Person = &Person{
name: "xiaosan",
age: 30,
}
fmt.Println("san", san, " &san", &san)
}
输出如下
yi {xiaoyi 20} &yi &{xiaoyi 20}
er &{xiaoer 22} &er 0xc000012030
san &{xiaosan 30} &san 0xc000012038

浙公网安备 33010602011771号