指针
基础
package main
import "fmt"
func main() {
var ip *int
fmt.Println(ip) // <nil>
var i = 100
// & 表示取内存地址
ip = &i
fmt.Println(ip) // 0xc00001a0e0
// * 表示取值
fmt.Println(*ip) // 100
var sp *string
var s = "hello world"
sp = &s
fmt.Println(sp) // 0xc00004c050
fmt.Println(*sp) // hello world
}
指针数组
package main
import "fmt"
func main() {
a := [3]int{1, 2, 3}
var pa [3]*int
fmt.Println(pa)
for i := 0; i < len(pa); i++ {
// 指针变量只能接收指针地址
pa[i] = &a[i]
}
fmt.Println(pa)
for i := 0; i < len(pa); i++ {
// 打印指针指向的值
fmt.Println(*pa[i])
}
}