上次学习了golang的整形、浮点型、bool类型等基础数据类型和array、struts复合类型以及引用类型的slice、map。
本次学习指针类型
想象一下你在放风筝,天空飞翔的风筝是数据而你手中的线就是数据的指针。风筝有各式各样的风筝,线也有各种各样的线。
二、指针的使用和普通变量一样指针变量的使用也是三个步骤:
1、定义变量
2、为变量赋值
3、读取变量的值
手中直接抓着风筝线不大好,不然手会被磨秃噜皮。我们需要一个线盘,线盘有两个作用:
1、放线:放飞风筝手中拿着线盘,对应指针操作的取地址运算符(&)
2、收线:收回线可以拿到风筝,对应指针操作的取值运算符(*)
实例代码如下:
package main
func main() {
// 通过系统函数new 定义一个指针变量
i := new(int)
// 通过*获取指针的值,整形变量默认值0
println(*i)
var n int = 9
// 通过&获取到变量n的指针
var m = &n
// 打印指针的值即n地址
println(m)
// 打印指针指向的值
println(*m)
// 声明一个指针变量
var iptr *int
// 为iptr赋值,值为n的地址
iptr = &n
// 打印指针
println(iptr)
// 打印指针指向的值
println(*iptr)
// m是一个指针变量,mptr是指向m的指针
mptr := &m
println(mptr)
println(*mptr)
println(**mptr)
}