🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
> go语言支持指针操作,但是跟c/c++的指针不一样,在go语言中我们不需要维护内存,go语言的指针更像引用类型。 [TOC] ## 指针使用 > 一个指针变量指向了一个值的内存地址 ~~~ package main // 导入fmt包 import "fmt" // 入口函数main func main() { var p *int i := 42 p = &i // 打印变量i的地址 fmt.Println(&i) // 打印指针地址 fmt.Println(p) // 打印指针p所指向的值,这里输出是变量i-> 42 fmt.Println(*p) // 将100 赋值给指针p指向的存储空间,相当于赋值给变量i *p = 100 fmt.Println(i) } ~~~ ## Go 空指针 > 当一个指针被定义后没有分配到任何变量时,它的值为 nil。 ~~~ package main // 导入fmt包 import "fmt" // 入口函数main func main() { var ptr *int fmt.Println(ptr) // 打印 <nil> if ptr == nil { fmt.Println("ptr is nil") }else { fmt.Println("ptr is not nil") } } ~~~