*&

①首先创建一个变量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

————————————————————————————

如果文章对您有帮助,扫个红包码呗

红包码