在Golang中指针是一种
类型,指向变量所在的内存单元!不是内存地址
var num *int// 分配内存地址num = new(int)// 设置值*num = 10// 打印内存地址fmt.Printf("%p\n", num)// 打印指针变量指向的内存地址fmt.Printf("%p\n", &num)// 打印指针变量值fmt.Printf("%d\n", *num)
指针地址不等于内存地址,指针地址指向的是存储内存地址的指针变量地址,而内存地址指的是值实际存放的内存单元地址,参考以下代码理解:
var num intnp := &num// 获取变量的内存地址fmt.Printf("%p\n", &num)// 获取指针变量所指向的内存地址fmt.Printf("%p\n", np)// 获取指针变量内存地址fmt.Printf("%p\n", &np)
