go语言学习 - 指针
前置知识 在编程中,一个内存地址用来定位一段内存。 通常地,一个内存地址用一个操作系统原生字(native word)来存储。 一个原生字在32位操作系统上占4个字节,在64位操作系统上占8个字节。 所以,32位操作系统上的理论最大支持内存容量为4GB(1GB == 230字节),64位操作系统上的理论最大支持内存容量为264Byte,即16EB(EB:艾字节,1EB == 1024PB, 1PB == 1024TB, 1TB == 1024GB)。 内存地址的字面形式常用整数的十六进制字面量来表示,比如0x1234CDEF。 以后我们常简称内存地址为地址。 指针是Go中的一种类型分类(kind)。 一个指针可以存储一个内存地址;从地址通常为另外一个值的地址。 和C指针不一样,为了安全起见,Go指针有很多限制,只有取值和取址操作。 指针取址 go语言中使用&+变量来获取变量的地址 package main import "fmt" func main() { var a int32 = 45 var b int32 = a fmt.Println("a的指针是:", &a) fmt.Println("b的指针是:", &b) } 指针变量 保存上面的&a &b这种指针数据的变量被称为指针变量,指针变量类型用*指针源值数据类型表示 package main import "fmt" func main() { var a int32 = 45 var b int32 = a fmt.Println("a的指针是:", &a) fmt.Println("b的指针是:", &b) var x *int32 = &a fmt.Println("x是:", x) } 指针取值 go语言中使用+指针变量来获取指针的值* ...