变量在内存中有唯一地址,通过&操作符获取;02. 指针变量存储其他变量地址,用定义并可通过解引用修改指向的值;03. 函数传参时使用指针可修改外部变量,Go通过&取地址、解引用实现内存操作。
理解指针在内存中的存储,关键在于搞清楚变量地址、指针变量和指向的值之间的关系。Golang 提供了简单直接的操作符来观察这些底层细节,通过实际代码可以清晰看到指针是如何工作的。
每个变量在程序运行时都存放在内存中,有其唯一的地址。使用 & 操作符可以获取变量的内存地址。
例如:
num := 42
fmt.Printf("num 的值: %d\n", num)
fmt.Printf("num 的地址: %p\n", &num)
输出类似:
这里的 0xc00001a0a0 就是变量 num 在内存中的位置。
指针变量是用来存储其他变量地址的特殊变量。用 * 定义指针类型。
var ptr *int // 声明一个指向 int 类型的指针 ptr = &num // 把 num 的地址赋给 ptr
此时 ptr 中保存的就是 0xc00001a0a0。打印 ptr 会输出相同的地址:
fmt.Printf("ptr 的值(即 num 的地址): %p\n", ptr)使用 * 操作符可以“解引用”指针,读取或修改它指向的内存中的值。
fmt.Printf("ptr 指向的值: %d\n", *ptr) // 输出 42
*ptr = 100 // 修改指针指向的内存中的值
fmt.Printf("修改后 num 的值: %d\n", num) // 输出 100
可以看到,通过指针修改值,原始变量也跟着变了,因为它们操作的是同一块内存区域。
Go 函数参数默认是值传递。如果想在函数内修改外部变量,必须传指针。
func increment(p *int) {
*p++
}
n := 10
increment(&n)
fmt.Println(n) // 输出 11
这里传入的是 &n,函数接收指针,通过解引用修改原值。如果不传指针,函数只能修改副本,不影响原变量。
基本上就这些。Golang 的指针不像 C 那样允许随意运算,但它保留了必要的能力来高效共享和修改数据。通过 & 取地址,* 解引用,再结合 fmt.Printf("%p") 观察地址,就能直观理解指针在内存中的行为。不复杂但容易忽略。
# golang指针
# go
# golang
# printf
# 指针
# 指针类型
# 值传递
# 的是
# 就能
# 中有
# 不像
# 可以看到
# 并可
# 但它
# 留了
# 关键在于
# 不传
相关文章:
建站之星手机一键生成:多端自适应+小程序开发快速建站指南
建站之星安装需要哪些步骤及注意事项?
婚礼视频制作网站,学习*后期制作的网站有哪些?
PHP正则匹配日期和时间(时间戳转换)的实例代码
,怎么在广州志愿者网站注册?
,南京靠谱的征婚网站?
如何用IIS7快速搭建并优化网站站点?
javascript中的try catch异常捕获机制用法分析
商务网站制作工程师,从哪几个方面把握电子商务网站主页和页面的特色设计?
网站制作服务平台,有什么网站可以发布本地服务信息?
相亲简历制作网站推荐大全,新相亲大会主持人小萍萍资料?
如何选择最佳自助建站系统?快速指南解析优劣
韩国网站服务器搭建指南:VPS选购、域名解析与DNS配置推荐
建站之星客服服务时间及联系方式如何?
如何在景安云服务器上绑定域名并配置虚拟主机?
实惠建站价格推荐:2025年高性价比自助建站套餐解析
家庭服务器如何搭建个人网站?
如何挑选最适合建站的高性能VPS主机?
c# F# 的 MailboxProcessor 和 C# 的 Actor 模型
音乐网站服务器如何优化API响应速度?
网站制作哪家好,cc、.co、.cm哪个域名更适合做网站?
宝塔建站助手安装配置与建站模板使用全流程解析
建站之星安装路径如何正确选择及配置?
如何用wdcp快速搭建高效网站?
如何将凡科建站内容保存为本地文件?
大连网站制作公司哪家好一点,大连买房网站哪个好?
平台云上自助建站如何快速打造专业网站?
网站制作价目表怎么做,珍爱网婚介费用多少?
c++怎么编写动态链接库dll_c++ __declspec(dllexport)导出与调用【方法】
宝塔新建站点报错如何解决?
*服务器网站为何频现安全漏洞?
logo在线制作免费网站在线制作好吗,DW网页制作时,如何在网页标题前加上logo?
如何在Mac上搭建Golang开发环境_使用Homebrew安装和管理Go版本
开心动漫网站制作软件下载,十分开心动画为何停播?
linux top下的 minerd 木马清除方法
建站之星如何助力企业快速打造五合一网站?
,网页ppt怎么弄成自己的ppt?
重庆市网站制作公司,重庆招聘网站哪个好?
如何选择高性价比服务器搭建个人网站?
C#怎么创建控制台应用 C# Console App项目创建方法
ppt制作免费网站有哪些,ppt模板免费下载网站?
装修招标网站设计制作流程,装修招标流程?
微网站制作教程,不会写代码,不会编程,怎么样建自己的网站?
简单实现Android文件上传
南京网站制作费用,南京远驱官方网站?
C++如何编写函数模板?(泛型编程入门)
网站设计制作公司地址,网站建设比较好的公司都有哪些?
如何通过商城自助建站源码实现零基础高效建站?
北京网页设计制作网站有哪些,继续教育自动播放怎么设置?
,想在网上投简历,哪几个网站比较好?
*请认真填写需求信息,我们会在24小时内与您取得联系。