go 指针
在弄懂什么是指针之前 先弄清楚什么是值传递,什么是引用传递 func add(n int) { n++ fmt.Println("add函数结束时:", n) } func main()
go 指针
发布时间:2023-10-06 (2023-10-06)

在弄懂什么是指针之前

先弄清楚什么是值传递,什么是引用传递

func add(n int) {
  n++
  fmt.Println("add函数结束时:", n)
}

func main() {
  var y = 2022
  add(y)
  fmt.Println("调用add函数之后:", y)
}

可以看到函数调用结束之后,y的值还是2022

这就是说明函数传递默认是值传递

我们可以使用&可以获取某个变量的内存地址

用*获取到内存地址所对应的值

func add(n *int) {
  *n++
  fmt.Println("add函数结束时:", n, *n)
}

func main() {
  var y = 2022
  var yy = &y
  add(yy)
  fmt.Println("调用add函数之后:", y, &y)
}