Go语言指针的解引用和间接引用

server/2025/2/5 7:16:56/

在 Go 语言中,"解引用"和"间接引用"是与指针相关的概念。

  1. 解引用 (Dereferencing):

解引用是指通过指针访问它所指向的变量的值。在 Go 中,使用星号(*)来解引用一个指针。

例如:

var x int = 10
var p *int = &x  // p 是指向 x 的指针
fmt.Println(*p)  // 输出 10,这里的 *p 就是解引用
*p = 20          // 通过解引用修改 x 的值
fmt.Println(x)   // 输出 20
  1. 间接引用 (Indirect reference):

间接引用通常指通过指针间接地引用或访问某个值。这个概念与解引用密切相关,因为你正是通过解引用来进行间接引用的。

例如:

type Person struct {Name stringAge  int
}var person Person = Person{"Alice", 30}
var ptr *Person = &personfmt.Println(ptr.Name)  // 输出 "Alice",这是间接引用
// 上面的语句等同于 (*ptr).Name,但 Go 允许我们直接使用 ptr.Name

在这个例子中,ptr.Name 是一个间接引用,我们通过指针 ptr 间接地访问了 personName 字段。

  1. 多级指针:

Go 也支持多级指针,这时解引用和间接引用可能会变得更复杂:

var x int = 10
var p *int = &x
var pp **int = &pfmt.Println(**pp)  // 输出 10,这里进行了两次解引用

http://www.ppmy.cn/server/165098.html

相关文章

简单理解精确率(Precision)和召回率(Recall)

温故而知新,可以为师矣! 一、参考资料 分类问题的评价指标:多分类【Precision、 micro-P、macro-P】、【Recall、micro-R、macro-R】、【F1、 micro-F1、macro-F1】 目标检测评估指标mAP:从Precision,Recall,到AP50-95【未完待续…

Python零基础快速入门课程,自带在线运行环境

Python零基础入门教程 编译器地址: Python在线编译器 课程目录: Python简介 Python是一种简单易学、功能强大的编程语言。它具有高效的数据结构,能够简单有效地实现面向对象编程。 Python的优点: 简单易学,所有人都可以零基础入门开源免费,有丰富的免费学习课程跨平台…

【数据结构】(4) 线性表 List

一、什么是线性表 线性表就是 n 个相同类型元素的有限序列,每一个元素只有一个前驱和后继(除了第一个和最后一个元素)。 数据结构中,常见的线性表有:顺序表、链表、栈、队列。 二、什么是 List List 是 Java 中的线性…

docker gitlab arm64 版本安装部署

前言: 使用RK3588 部署gitlab 平台作为个人或小型团队办公代码版本使用 1. docker 安装 sudo apt install docker* 2. 获取arm版本的gitlab GitHub - zengxs/gitlab-arm64: GitLab docker image (CE & EE) for arm64 git clone https://github.com/zengxs…

具身智能-强化学习-强化学习基础-马尔可夫

文章目录 参考强化学习基础强化学习特点reward函数两种强化学习两种策略:探索(Exploration) vs. 利用(Exploitation)gym库的使用 马尔可夫马尔可夫过程马尔可夫奖励过程(Markov Reward Process, MRP&#x…

浏览器同源策略:从“源”到安全限制的全面解析

一、什么是“源”(Origin)? 在浏览器中,“源”是 Web 安全的核心概念。一个“源”由三部分组成: 协议(Protocol):如 http://、https://、ftp:// 域名(Host)…

有用的sql链接

『SQL』常考面试题(2——窗口函数)_sql的窗口函数面试题-CSDN博客 史上最强sql计算用户次日留存率详解(通用版)及相关常用函数 -2020.06.10 - 知乎 (zhihu.com) 1280. 学生们参加各科测试的次数 - 力扣(LeetCode&…

可以称之为“yyds”的物联网开源框架有哪几个?

有了物联网的发展,我们的生活似乎也变得更加“鲜活”、有趣、便捷,包具有科技感的。在物联网(IoT)领域中,也有许多优秀的开源框架支持设备连接、数据处理、云服务等,成为被用户们广泛认可的存在。以下给大家…