1、什么是指针
理解:指针 就是 地址
var a int = 10 var p *int = &a
注意:*p的值为10(a和*p指的同一块内存空间)
&:获取变量的地址
*:获取指针类型变量所指向的值
空指针:未被初始化的指针,var p *int,这时候*p—>err
2、变量存储
等号左边的变量 代表 变量的内存空间 (写)
等号右边的变量 代表 变量内存空间存储的数据值 (读)
2、常见的值类型和引用类型
值类型:基本数据类型int系列,float系列,bool,string,数组,结构体struct
引用类型:指针,切片slice,map,interface,管道chan等都是引用类型
值类型变量直接存储值,内存通常在栈中分配
引用类型变量存储的是一个地址,地址对应的空间才真正存储数据(值),内存通常在堆中分配
注意:当没有任何变量引用这个地址时,该地址对应的数据存储空间就成为了一个垃圾,由GC来回收