声明指针,*T是指针变量的类型,它指向T类型的值。
var var_name *var-type
var-type 为指针类型,var_name 为指针变量名,* 号用于指定变量是作为一个指针。
var ip *int var fp *float32
示例代码:
package mainimport "fmt"func main() { var a int= 20 var ip *int ip = &a fmt.Printf("a 变量的地址是: %xn", &a ) fmt.Printf("ip 变量的存储地址: %xn", ip ) fmt.Printf("*ip 变量的值: %dn", *ip )}运行结果:
a 变量的地址是: 20818a220ip 变量的存储地址: 20818a220*ip 变量的值: 20
示例代码:
package mainimport "fmt"type name int8type first struct { a int b bool name}func main() { a := new(first) a.a = 1 a.name = 11 fmt.Println(a.b, a.a, a.name)}运行结果:
false 1 11
未初始化的变量自动赋上初始值
package mainimport "fmt"type name int8type first struct { a int b bool name}func main() { var a = first{1, false, 2} var b *first = &a fmt.Println(a.b, a.a, a.name, &a, b.a, &b, (*b).a)}运行结果:
false 1 2 &{1 false 2} 1 0xc042068018 1获取指针地址在指针变量前加&的方式
空指针
Go 空指针
当一个指针被定义后没有分配到任何变量时,它的值为 nil。
nil 指针也称为空指针。
nil在概念上和其它语言的null、None、nil、NULL一样,都指代零值或空值。
一个指针变量通常缩写为 ptr。
空指针判断:
if(ptr != nil) if(ptr == nil)



