Golang指针说明:
每种值类型,都有对应的指针类型,形式为 *数据类型,比如int对应的指针就是*int,float32对应的指针就是*float32,以此类推。
值类型包括:基本数据类型int系列、float系列、bool、string、数组和结构体struct。
在Golang中,获取变量的地址,用&,比如声明一个整型变量,输出它的地址:
var num int
fmt.Println(&num) //获取num的地址
指针变量存的是一个地址,这个地址指向的空间存的才是值,演示声明一个指针变量
var num int
var ptr *int = &num
获取指针类型所指向的值,使用:*,比如:
var num int = 10
var ptr *int = &num
fmt.Println(*ptr) //使用*ptr获取ptr指向的值
实际演示案例:
通过指针变量修改所指向的值
var num int = 10
var ptr *int = &num
*ptr = 20 //这里修改时,会看到num的值变化
fmt.Println(num) //20
案例演示
值类型和引用类型的使用特点
值类型:变量直接存储值,内存通常在栈中分配
引用类型:变量存储的是一个地址,这个地址对应的空间才真正存储数据,内存通常在堆上分配,当没有任何变量引用这个地址时,该地址对应的数据空间就成为一个垃圾,由GC来回收。
下一篇:Golang标识符