go语言学习日记 - 指针
指针
首先我们来了解下什么是指针:一个指针变量可以指向任何一个值的内存地址,它所指向的值的内存地址在 32 和 64 位机器上分别占用 4 或 8 个字节,占用字节的大小与所指向的值的大小无关。当一个指针被定义后没有分配到任何变量时,它的默认值为 nil。指针变量通常缩写为 ptr。
下面我们用代码来说明指针的特点
import "fmt"
func main(){
label:="我想毕业"
ptr:=&label //用&符号获取指针所指向的地址
label2:=new(string) //用new关键字定义指针
*label2="算了,我躺了" //用*打开指针所在地址,用于取值和赋值
res:=testPtr() //可以返回栈上的指针,编译器在编译程序的时候,会自动判断这段代码,将thing变量分配到堆上
}
func testPtr() *string{
thing:="摸鱼"
ptr:=&thing
return ptr
}