Golang指针&Go变量类型

最近在学习底层知识,一直在说,值类型,引用类型,指针类型,指针,指针变量,搞的迷迷糊糊的,感觉也是似懂非懂,现在系统的学习归纳整理一下。

a := 10

a是一个值类型的变量,因为a里面存储的是10,我们通过a可以直接取到 10 这个值

然后我们执行下面的代码

b := &a

b就是一个指针(类型)变量,该变量的值是地址,也就是说指针就是一个变量,只不过这个变量里面存储的是一个地址(指向内存),指针是一个实体。  引用是指跟原来的变量实质上是同一个东西,只不过是原变量的一个别名而已。

对该地址进行取值(*)操作,可以获取指针变量指向的原变量的值

 

Go语言中的值类型(int float bool string array struct)都有对应的指针类型(*int,*int64,*string)等等

指针类型和引用类型的区别 

我们通常说,channel,slice是引用类型,这些数据结构的本质是一个结构体,但是他们里面的某个属性存储是指针类型。

通常说一个变量是一个指针类型,这个时候和说他是int类型,布尔类型是相同的。只不过,指针类型里面存储的是地址,普通类型存储的是值。

综上所述

值类型 、引用类型:形容的是数据类型,int 是值类型,切片是引用类型,也可以说*int是引用类型

指针、指针类型 :形容的是一个变量,变量存储的是内存地址,变量是int类型,变量是int指针类型

指针变量 :该变量是指针

基本数据类型

整形、浮点型、布尔型、字节型、字符串型

引用数据类型:

通道、map、切片、函数类型、指针

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值