Go 第9章 指针 Go 第9章 指针

2021-06-09
  • 指针:用*表示变量本身没有任何存储值,而是拿到了原本数据的存储路径

  • 地址:地址需要和指针搭配使用

  • 指针不能运算

  • Go 语言只有值传递一种方式

package main

import "fmt"

func main() {
   var a int = 2
   var pa *int = &a
   *pa = 3
   fmt.Println(a)
   fmt.Println(pa)
}
  • 数组指针:数组所在的地址

package main

import "fmt"

func main() {
   var arr = [2]int{1, 2}
   var arrP *[2]int
   arrP = &arr
   fmt.Println(arr, arrP)
}
  • 指针数组:由指针组成的数组

package main

import "fmt"

func main() {
   var arrP [2]*int
   var int1 = 1
   var int2 = 2
   arrP = [2]*int{&int1, &int2}
   *arrP[1] = 22
   fmt.Println(int2)
}
  • 指针传参

package main

import "fmt"

func main() {
   var str1 = "我定义了"
   change(&str1)
   fmt.Println(str1)
}

func change(p1 *string) {
   *p1 = "我变了"
}
  • 隐式赋值得到地址

package main

import "fmt"

func main() {
   var str1 = "我定义了"
   p := &str1
   *p = "我变了"
   fmt.Println(str1)
}

打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,你说多少就多少

打开微信扫一扫,即可进行扫码打赏哦

阅读 878