指针是一个变量,存储的是另一个变量的地址
package main import "fmt" func main() { var a string = "hello" var b *string //a的类型对应,否则报错 var c int = 1 var d *int = &c b = &a fmt.Println(a, b) fmt.Println(c, d) }
没有赋值的指针是空指针,nil
指针作为函数的参数:
package main import "fmt" func main() { var b int = 1 var c *int = &b test(c) } func test(a *int) { fmt.Println(a, &a, *a) //a代表的是b(值为1)的地址,使用*a可以取到b的值;也就是知道一个地址之后,在地址前面加*就可以取到这个地址的值; }
//执行结果:
0x10acc070 0x10ac20f0 1