💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、星火、月之暗面及文生图 广告
> 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") } } ~~~