- go语言中不存在指针操作
- 只需要记住两个符号,一个是&取地址,一个是*根据地址取值
//&取地址
//*根据地址取值
a := 18
fmt.Printf("地址:%p\n", &a)
p := &a
fmt.Printf("p的类型:%T\n", p)
fmt.Printf("根据地址取值:%v", *p)
输出:
地址:0xc00001e0a0
p的类型:*int (intl类型的指针)
根据地址取值:18
new和make
- new函数申请一个内存地址,一般是给基本数据类型使用的,比如int,string等,返回的是对应类型的指针
- make也是分配内存的,只是给slice和map和chan分配内存的,返回的是这三个类型本身
var a2 = new(int)
*a2 = 100
fmt.Printf("a2:%v", *a2)