Go指针基本介绍

4 篇文章 0 订阅
本文介绍了Go语言中的指针概念,包括指针如何存储地址以及如何通过指针修改变量值。值类型如int、float、bool、string、数组和结构体都有对应的指针类型。指针和值类型的主要区别在于内存分配,值类型存储在栈中,而引用类型如指针、slice、map等存储在堆中,并且只有当没有变量引用时才会被垃圾回收。理解这些原理对于优化Go程序的性能至关重要。
摘要由CSDN通过智能技术生成

指针

基本介绍

基本数据类型, 变量存的就是值,也叫值类

获取变量 i 的地址,用&i

指针类型,指针变量存的是一个地址,这个地址指向的空间存的才是值

比如:var ptr *int=&num

ptr指向一个空间,存的是 i 的地址

 

获取指针类型所指向的值,使用*,比如var ptr *int

指针变量接收地址

修改*ptr值时,会导致ptr指向空间所存的地址对应的空间的所存值改变

使用细节

值类型,多有对应的指针类型 *数据类型

值类型包括:基本数据类型int系列,float,bool,string,数组和结构体struct

常见的值类型和引用类型

值类型:基本数据类型int系列,float,bool,string,数组和结构体struct

引用类型:指针,slice切片,map,管道、interface等都是引用类型

值类型和引用类型的说明

内存的栈区和堆区示意图

值类型:变量直接储值,内存通常在栈中分配、

 

引用类型:变量存储的是一个是一个地址,这个地址对应的空间才是真正存储数据(值),内存通常在堆区分配,当没有任何变量引用这个地址时,该地址对应的数据空间就成为一个垃圾,由GC来回收

图片引用:



​​​​​​【尚硅谷】Golang入门到实战教程丨一套精通GO语言_哔哩哔哩_bilibili

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Hanley_Yeung

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值