龙空技术网

Golang基础之指针

博学的书签v 72

前言:

今天看官们对“如何获取指针的值”大致比较着重,同学们都想要了解一些“如何获取指针的值”的相关内容。那么小编在网上网罗了一些关于“如何获取指针的值””的相关资讯,希望小伙伴们能喜欢,大家快快来了解一下吧!

值类型-变量存的是值本身:基本数据类型 int系列,float系列,bool,string,数组和结构体,值类型都有对应的指针类型(形式为:*数据类型)引用类型-变量存的是内存地址:指针,slice,map,channel,interface等都是引用类型

1、获取变量的地址,用&,

var num int = 10fmt.Println("num的内存地址是:",&num)

2、指针类型,指针变量存的是一个内存地址,这个地址指向的内存空间保存的才是具体值

var num int = 10var ptr *intptr = &num// 以上两行,可以写成var ptr *int = &numptr 是一个变量名称,指针变量ptr的类型是*int // *代表指针&num 获取变量num的内存地址ptr 这个指针变量保存的就是变量num的内存地址

3、获取指针类型变量所指向的值,用*,格式: *指针变量 (即*指针地址)

fmt.Printf("prt 指向的值是%v", *ptr)

要区分指针类型和取值操作。

4、创建指针的另一种方法-new()函数

new()函数会在堆上分片一块内存空间,并返回这块内存的地址

s = new(string)fmt.Println(s) // 内存地址*s = "tom" // 内存存值fmt.Println(*s) // 取值// 等价于var s strings = "tom"ss := &sfmt.Println(*ss)

标签: #如何获取指针的值