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语言中使用&+变量来获取变量的地址
1 | package main |
指针变量
保存上面的&a
&b
这种指针数据的变量被称为指针变量,指针变量类型用*指针源值数据类型表示
1 | package main |
指针取值
go语言中使用+指针变量来获取指针的值*
1 | package main |