1.变量和内存地址
每个变量都有内存地址,可以说通过变量操作对应大小的内存,
普通变量存储的是对应类型的值,这些类型叫做值类型
指针类型的变量存储的是一个值的内存地址,所以叫做指针类型或者引用类型
可以通过 & 符号获取变量内存地址
a := 100 fmt.Println(&a)
2.使用指针
指针声明格式如下
var name *type var a *int //此时是一个空指针,存储的是空地址
我们可以把一个变量的内存地址存储在指针变量(当引用类型的值发生修改,其引用的值类型的值也会发生修改)
var a int= 20 /* 声明实际变量 */ var ip *int /* 声明指针变量 */ ip = &a /* 指针变量的存储地址 */ fmt.Printf("a 变量的地址是: %x\n", &a ) //20818a220 /* 指针变量的存储地址 */ fmt.Printf("ip 变量储存的指针地址: %x\n", ip ) //20818a220 /* 使用指针访问值,*号获取执行地址里面的变量 */ fmt.Printf("*ip 变量的值: %d\n", *ip ) //20