解引用是通过指针获取或修改原变量值的操作,使用操作符实现。例如p := &a创建指向a的指针,p可读取a的值,p = 100可修改a的值;在函数传参时,接收指针可通过p访问或更改原始数据,如increment函数通过x = x + 1使外部变量加1。

在 Go 语言中,指针指向变量的内存地址。要通过指针获取它所指向的值,就需要进行“解引用”操作。这个过程非常直接,使用星号 * 操作符即可。
什么是解引用
假设你有一个变量 a,它的值是 42。你可以创建一个指向它的指针 p,即 p = &a。此时 p 存储的是 a 的地址。要拿到原始值 42,就要对 p 解引用:*p。
基本语法示例
下面是一个简单的例子展示如何声明指针、赋值和解引用:
package main
import "fmt"
func main() {
a := 42
p := &a // p 是指向 a 的指针
fmt.Println(*p) // 输出: 42,*p 解引用获取值
}
这里 *p 就是解引用操作,输出结果为原始变量的值。
立即学习“go语言免费学习笔记(深入)”;
通过指针修改原值
解引用不仅可以读取值,还能修改原变量的值:
由于疫情等原因大家都开始习惯了通过互联网上租车服务的信息多方面,且获取方式简便,不管是婚庆用车、旅游租车、还是短租等租车业务。越来越多租车企业都开始主动把租车业务推向给潜在需求客户,所以如何设计一个租车网站,以便在同行中脱颖而出就重要了,易优cms针对租车行业市场需求、目标客户、盈利模式等,进行策划、设计、制作,建设一个符合用户与搜索引擎需求的租车网站源码。 网站首页
*p = 100 // 修改指针指向的值 fmt.Println(a) // 输出: 100,a 的值也被改变了
因为 p 指向 a,所以 *p = 100 实际上就是把 a 的值改为 100。
常见使用场景
解引用常用于函数传参,尤其是想在函数内部修改外部变量时:
func increment(x *int) {
*x = *x + 1 // 解引用并加 1
}
func main() {
num := 5
increment(&num)
fmt.Println(num) // 输出: 6
}
函数接收的是指针,通过 *x 解引用才能访问和修改原始数据。
基本上就这些。只要记住:& 取地址,* 解引用。用好这两个操作符,就能灵活操控指针指向的值。









