*&
①首先创建一个变量a并赋值为43
a := 43 //声明的同时初始化
fmt.Println(a) //43
fmt.Println(&a) //0xc00000a0b8
&
var b = &a
fmt.Println(b) //0xc00000a0b8
fmt.Println(&b) //0xc000006030
fmt.Printf("%T \n",b) //*int
fmt.Println(*b) //43
%T*int*
(*int=0xc00000a0b8)
二 、关于地址
①函数zero,传入的int值
func zero(z int) {
fmt.Printf("%p\n", &z) // 输出z在zero函数中的地址
fmt.Println(&z) // 输出z在zero函数中的地址
z = 0
fmt.Println(z) //0
}
②main函数
func main() {
x := 5
fmt.Printf("%p\n", &x) // 输出x在main函数中的地址 0xc00000a0b8
fmt.Println(&x) // 输出x在main函数中的地址 0xc00000a0b8
zero(x) // 输出x在zero函数中的地址 0xc00000a0f0
fmt.Println(x) // 5
}
%p
若修改变量的地址不同
三、关于如何在其他函数中修改main函数中的变量值
①函数zero,传入一个int型指针
func zero(z *int) {
fmt.Println(z) // z指针指向的地址 0xc00000a0b8
*z = 0
}
②main函数
func main() {
x := 5
fmt.Println(&x) // x的地址 0xc00000a0b8
zero(&x)
fmt.Println(x) // 0
}
z指针指向的地址x的地址*z
————————————————————————————