go 笔记 第八章 指针和地址

指针指向一个变量的内存地址
var b *int
b 是一个指针
*b 代表修改内存地址的值

  • 号声明指针,& 号取地址
a := 3
fmt.Println(a)
b := &a
fmt.Println(a, *b)
*b = 8
fmt.Println(a, *b)
fmt.Println("type a", reflect.TypeOf(a))
fmt.Println("type b", reflect.TypeOf(b))
/*
	3
	3 3
	8 8
	type a int
	type b *int

*/

函数通过指针传参

func main() {
	a := 3
	change(&a)
	fmt.Println(a)
	// 8

}

func change(a *int) {
	*a = 8
}

数组指针和指针数组

//数组指针
a := []int{1, 2, 3}
b := &a
fmt.Println(a, b)
(*b)[0] = 9
fmt.Println(a, b)

//指针数组
f := 1
c := []*int{&f}
*c[0] = 90
fmt.Println(f, c)

你可能感兴趣的:(go,笔记,golang,笔记,开发语言)