day02-13pointer

指针(指向内存的地址)

&:取内存地址

*:根据内存地址取值

vscode 不支持go module

n := 18
fmt.Println(&n)
//0xc0000100a8
p := &n
fmt.Printf("%T\n",p) //*int  int类型的指针,如果是*string 及时string类型的指针
//*int

m := *p
fmt.Println(m)
//18
fmt.Printf("%T\n",m)
//int

new 函数申请一个内存地址,很少用,一般给基本数据类型申请内存地址,string,int...,返回的是对应类型的指针

var a = new(int)
*a = 100
fmt.Println(*a)
//100

make也是分配内存地址的,它只用于slice,map以及chan的内存创建,make函数返回的是对应的这三个类型的本身

你可能感兴趣的:(day02-13pointer)