Golang中的指针速通

91 阅读1分钟

Golang中的新奇的语法:指针部分图解

image.png

代码部分

package main

import "fmt"

//func swap(a int, b int) {
// var t int = a
// a = b
// b = t
//}

func swap(pa *int, pb *int) {
   var t int = *pa //t = main::a
   *pa = *pb       //main::a = main::b
   *pb = t         //main::b = t
}

func main() {
   var a int = 10
   var b int = 20

   swap(&a, &b)
   fmt.Println("a = ", a, "b = ", b)

   var p *int
   p = &a //传地址
   fmt.Println(&a)
   fmt.Println(p)

   var pp **int //二级指针,存一级指针的地址
   pp = &p
   fmt.Println(&p)
   fmt.Println(pp)
}

输出结果

image.png