如何在Golang中理解指针与内存分配

指针存储变量地址,通过&取地址、*解引用;new分配零值内存返回指针,make初始化slice、map、channel;指针接收者可修改原对象;逃逸分析决定变量或堆分配。

如何在golang中理解指针与内存分配

在Golang中,指针和内存分配是理解程序如何管理数据的基础。掌握它们有助于写出更高效、更安全的代码。

指针的基本概念

指针是一个变量,它存储另一个变量的内存地址。使用&操作符可以获取变量的地址,而*操作符用于访问指针所指向的值。

例如:

a := 10
p := &a // p 是指向 a 的指针
fmt.Println(p) // 输出类似 0xc00001a078(a 的地址)
fmt.Println(*p) // 输出 10(p 指向的值)

修改指针指向的值会影响原始变量:

立即学习“go语言免费学习笔记(深入)”;

*p = 20
fmt.Println(a) // 输出 20

new 和 make 的区别

Golang 提供了两种主要方式来分配内存:newmake,但它们用途不同。

new(T) 为类型 T 分配零值内存,并返回指向它的指针 *T。适用于基本类型或结构体。 make(T) 用于 slice、map 和 channel,初始化它们的内部结构并返回可用的值,而不是指针。

示例:

ptr := new(int) // 分配一个 int,初始值为 0
*ptr = 5 // 赋值
fmt.Println(*ptr) // 输出 5

m := make(map[string]int) // 初始化 map,可直接使用
m[“age”] = 30

注意:不能对未初始化的 map 使用 new,否则会 panic。

结构体与指针接收者

在方法定义中,使用指针接收者可以让方法修改调用者本身。

绘蛙AI修图 绘蛙AI修图

绘蛙平台AI修图工具,支持手脚修复、商品重绘、AI扩图、AI换色

绘蛙AI修图 285 查看详情 绘蛙AI修图

比如:

type Person struct {
  Name string
}

func (p Person) Rename(n string) {
  p.Name = n // 只修改副本
}

func (p *Person) RenamePtr(n string) {
  p.Name = n // 修改原对象
}

调用时:

person := Person{Name: “Alice”}
person.Rename(“Bob”)
fmt.Println(person.Name) // 仍是 Alice

person.RenamePtr(“Bob”)
fmt.Println(person.Name) // 变成 Bob

逃逸分析与栈堆分配

Go 编译器通过逃逸分析决定变量是分配在栈上还是堆上。大多数局部变量分配在栈上,生命周期短;如果变量被外部引用(如返回局部变量指针),则会被分配到堆上。

开发者通常不需要手动干预,但了解这一点有助于避免不必要的内存开销。

可以通过编译命令查看逃逸分析结果:

go build -gcflags=”-m” your_file.go

输出信息会提示哪些变量逃逸到了堆。

基本上就这些。指针不是魔法,而是对内存的直接引用。合理使用 new、make 和指针接收者,能让你更好地控制数据的生命周期和性能表现。不复杂但容易忽略细节。

以上就是如何在Golang中理解指针与内存分配的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1079225.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年12月2日 07:55:01
下一篇 2025年12月2日 07:55:32

相关推荐

  • Filecoin,XRP,Blockdag:导航加密货币的变化沙子

    filecoin&xrp遭遇横向震荡,而blockdag的推荐奖励机制引发关注。本文探讨了当前趋势。 Filecoin,XRP,Blockdag:探索加密货币的动态变化 加密世界永不停歇,但目前Filecoin和XRP正处于盘整阶段。与此同时,BlockDag正以一种创新的用户激励方式搅动市场,并专…

    2025年12月8日
    000
  • XRP ETF动量:Teucrium的AUM增长信号信号看涨未来

    xrp etf批准前景显著升温,teucrium推出的2倍杠杆xrp etf已吸纳1.22亿美元资产管理规模,向华尔街释放出强烈的机构关注度信号。 XRP ETF势头强劲:Teucrium AUM跃升预示积极前景 围绕潜在XRP ETF的讨论愈发热烈,Teucrium推出的两倍杠杆XRP ETF(X…

    2025年12月8日
    000
  • Dogecoin,Shiba Inu和Meme Coin Mania:下一步是什么?

    dogecoin和shiba inu还值得继续关注吗?深入了解这些模因币的最新动向、面临的挑战以及未来潜力。 Dogecoin、Shiba Inu与Meme Coin热潮:接下来会发生什么? 曾经风靡加密世界的Dogecoin和Shiba Inu等模因币,如今是否还能维持热度?在市场逐渐收紧的情况下…

    2025年12月8日
    000
  • Blockdag的预售成功:效用如何在UNISWAP和FIERECOIN之外推动吸引力

    尽管uniswap和filecoin展现出一定的前景,blockdag凭借其x1应用驱动及对实用性的专注,正逐步确立其在加密领域中的领先地位。 Blockdag预售表现亮眼:实用性如何助力其超越UNISWAP与FIERECOIN 加密市场持续升温,近期Blockdag、Uniswap与Filecoi…

    2025年12月8日
    000
  • Ruvi AI:被审核的令牌挑战雪崩预测

    ruvi ai(ruvi)正迅速成为焦点,融合了区块链与人工智能技术。凭借亮眼的预售成绩、坚实的合作关系以及实际应用场景,它展现出超越雪崩(avalanche)的潜力。 Ruvi AI:经审核的代币挑战雪崩预测 当Ruvi AI(Ruvi)作为强劲竞争者出现,甚至可能超越雪崩时,加密圈内掀起了一阵热…

    2025年12月8日
    000
  • 以太坊价格眼睛$ 3K,Dogecoin Wobbles和Crypto预测获得了AI扭曲

    以太坊展现出强劲势头,dogecoin陷入震荡,而unstaked的ai正悄然颠覆格局。我们一同来解析“以太坊价格走势、狗狗币暴跌、加密市场预测”背后的热议话题。 以太坊逼近3,000美元?Dogecoin波动加剧与加密市场迎来AI新变量 以太坊近期表现强势,Dogecoin则出现明显波动,而Uns…

    2025年12月8日
    000
  • Cardano vs. Ruvi AI:分析师Eye AI-Power Crypto Surge

    与cardano相比,分析师对ruvi ai的迅猛增长感到惊讶。ruvi ai的人工智能驱动方式会成为加密投资的新趋势吗? Cardano vs. Ruvi AI:分析师关注AI赋能的加密热潮 Ruvi AI的迅速崛起正在挑战Cardano的稳步前行。当Ruvi AI运用人工智能重塑加密领域时,分析…

    2025年12月8日
    000
  • 骑加密波:Qubetics,Solana ETF和下一个公牛跑步

    探索qubetics的潜力,solana etf引发的关注以及更广泛的加密货币牛市趋势。揭示塑造数字资产未来的关键见解与动向。 当前的加密领域异常活跃,三个关键词频繁出现:Qubetics、Solana和对全面牛市的期待。让我们深入探讨这些主题为何成为焦点,以及它们对投资者意味着什么。 Qubeti…

    2025年12月8日
    000
  • chatgpt,bonk和$ apork:导航模因硬币狂潮

    通过chatgpt insights探索模因硬币的动态世界,重点是bonk的挑战和$ apork的兴起,作为令人信服的替代方案。在模因硬币市场中发现关键趋势和投资机会。 Meme硬币市场是一个疯狂的旅程,最近在Bonk和The Remering $ apork等硬币周围嗡嗡作响。让我们深入了解正在发…

    2025年12月8日
    000
  • ruvi ai:下一个solana?投资回报率预测和加密比较

    ruvi ai是否将成为加密货币领域的下一个重大事件?专家预测其投资回报率可能极高,并将其与早期solana进行类比,探讨其潜在及实际应用场景。 围绕Ruvi AI(Ruvi)的讨论热度持续上升,业内专家私下将其与Solana(SOL)发展初期相提并论。据称该项目有望带来高达13,100%的投资回报…

    2025年12月8日
    000
  • 怎么下载欧意交易所 欧意使用教程

    在%ignore_a_1%日益普及的今天,选择一个安全、便捷、功能强大的交易平台至关重要。欧意交易所(okx)作为全球领先的数字资产交易平台之一,凭借其丰富的交易品种、强大的安全保障和流畅的用户体验,吸引了众多投资者的目光。本教程将详细介绍如何下载欧意交易所,并提供全面的使用指南,帮助您快速上手,安…

    2025年12月8日
    000
  • 预货币,比特币和国库策略:一个新时代?

    探索psg的长期加密战略与eyenovia的创新代币炒作,财政部的but coin研究揭示了数字资产整合的新趋势和深层洞察。 预货币、比特币与国库战略:一个新时代? 传统金融体系与数字资产之间的融合正在加速升温!越来越多企业将比特币及其他加密货币纳入其国库管理策略之中。让我们深入探讨围绕Precoi…

    2025年12月8日
    000
  • PI网络:具有经过验证的数百万美元还是蒸发软件的加密运动?

    pi network对加密货币的独特方法,拥有数百万经过验证的用户,sparks辩论:它是开创性的运动还是未兑现的潜力? PI网络:是真实加密运动还是泡沫项目? 在加密货币领域中,炒作与猜测常常主导市场,而Pi Network却开辟了一个独特的细分市场。在主网尚未完全上线之前,Pi Network就…

    2025年12月8日
    000
  • 比特币价格,竞争和预售:加密货币世界中有什么热?

    比特币价格正遭遇neo pepe等创新预售项目的挑战。探索趋势与洞察,解读加密货币领域的变化。 比特币向106,000美元迈进的过程中,面临Neo Pepe和Unstaked等预售项目带来的竞争压力。这些新项目以独特的方式吸引了大量投资者关注。本文将探讨比特币当前的价格走势、市场格局以及新兴预售项目…

    2025年12月8日
    000
  • 什么是Spark加密货币?SPK代币和DeFi基础设施的完整指南

    在快速发展的去中心化金融领域,自成立以来,一直困扰着行业的一个持续挑战是:流动性分散、收益不稳定和跨链及协议之间闲置的稳定币资本。引入spark (spk),这是一种开创性的解决方案,重新定义了流动性在defi中的流动方式。 Spark 网络 (SPK) 正在重新定义内容的拥有、传递和货币化方式。这…

    2025年12月8日 好文分享
    000
  • 如何理解最新成交价、指数价格和标记价格这三者的意义和区别

    我们在okx(官方注册 官方下载)交易界面中会遇到三个名称的价格,即最新成交价、指数价格和标记价格,那这三个价格有什么样的联系和区别呢? 三种价格的前端位置 ① 最新成交价 ② 指数价格 ③ 标记价格 三种价格的联系和区别 最新成交价是合约交易中盘口实时成交的价格。 指数价格是选择三家以上的主流交易…

    2025年12月8日
    000
  • 什么是SGC代币?KAI三国志对战游戏代币(SGC)的完整指南

    目录 什么是 KAI 三国志对战(SGC 代币)?SGC 代币与 KAI 三国志对战平台的对比SGC 币和 KAI 三国志对战背后的故事SGC 代币和 KAI 三国志对战的关键特性1. 革命性的 NFT 武将系统2. 基于质押的经济模型3. 纯粹的游戏独立性4. 透明的区块链整合SGC 代币的实际应…

    2025年12月8日 好文分享
    000
  • 2025年SOL适合长期持有吗?SOL还会突破300美金历史新高吗?

    2025年SOL适合长期持有吗?SOL还会突破300美金历史新高吗? 最近行情开始越来越好,虽然说有人认为这只是反弹,接下来还会大跌,但是也有一小部分人看好接下来的行情,开始寻找机遇。 这两天问我这个能不能买,那个能不能买的人明显增多了。 并且,我从这里面发现了一个共性,问的人几乎都问了“SOL” …

    2025年12月8日
    000
  • 一文搞清楚比特币投资逻辑看 Strategy 的进化之路

    本周,随着“数字资产金库型企业”日益受到关注,我们将目光投向了 strategy。 摘要 比特币正步入其机构时代,2024 年现货 ETF 的获批和全球采纳的加速推动了这一趋势。但作为主流价值储存手段的转变仍处于早期阶段。 Strategy 的核心投资理念建立在比特币的长期复合年增长率(CAGR)之…

    2025年12月8日 好文分享
    000
  • 币安正版交易所入口 Binance官网在线登录链接

    %ignore_a_1%,作为全球领先的加密货币交易平台,以其丰富的交易品种、强大的安全性以及便捷的用户体验赢得了全球用户的广泛认可。它不仅仅是一个简单的交易平台,更是一个集现货交易、合约交易、Launchpad、DeFi挖 矿等多种功能于一体的综合性数字资产服务生态系统。对于想要进入这个充满机遇的…

    2025年12月8日
    000

发表回复

登录后才能评论
关注微信