Go 语言学习手札 ━━ 指针
指针的定义
一个指针变量指向了一个值的内存地址。
指针的声明
类似于变量和常量,在使用指针前你需要声明指针。指针声明格式为:var var_name *var-type
- var-type 为指针类型
- var_name 为指针变量名
- * 号用于指定变量是作为一个指针
// 如: var ip *int // 指向整型 var fp *float32 // 指向浮点型
指针的使用流程
- 定义指针变量
- 为指针变量赋值
- 访问指针变量中指向地址的值
// 例: package main import "fmt" func main() { var a int= 20 // 声明实际变量 var ip *int // 声明指针变量 ip = &a // 指针变量的存储地址 fmt.Printf("a 变量的地址是: %x\n", &a ) // 指针变量的存储地址 fmt.Printf("ip 变量储存的指针地址: %x\n", ip ) // 使用指针访问值 fmt.Printf("*ip 变量的值: %d\n", *ip ) } // 输出结果为: // a 变量的地址是: 20818a220 // ip 变量储存的指针地址: 20818a220 // *ip 变量的值: 20
空指针
当一个指针被定义后没有分配到任何变量时,它的值为 nil。nil 指针也称为空指针。nil 在概念上和其它语言的 null、None、nil、NULL 一样,都指代零值或空值。一个指针变量通常缩写为 ptr。
// 如: package main import "fmt" func main() { var ptr *int fmt.Printf("ptr 的值为 : %x\n", ptr ) } // 空指针判断: if(ptr != nil) // ptr 不是空指针 if(ptr == nil) // ptr 是空指针
标签:GO