前言

上次学习了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)
}