使用&可将值类型转为指针:x:=42; ptr:=&x得到int指针;结构体同理p:=Person{Name:"Alice"}; ptr:=&p,通过ptr.Name直接访问字段;函数传参时用&val传递地址,func increment(x int){ *x++ }可修改原值。

在 Go 语言中,将值类型变量转换为指针对应的操作是取地址。你只需要使用取地址符 & 就能把一个值类型的变量转成指向它的指针。
假设你有一个整型变量,想得到指向它的指针:
x := 42 ptr := &x // ptr 是 *int 类型,指向 x 的内存地址 fmt.Println(ptr) // 输出类似 0xc00001a0c0 fmt.Println(*ptr) // 输出 42,解引用获取值
这里 ptr 的类型是 *int,即“指向 int 的指针”。
对结构体也是一样:
立即学习“go语言免费学习笔记(深入)”;
type Person struct {
Name string
Age int
}
p := Person{Name: "Alice", Age: 30}
ptr := &p // ptr 是 *Person 类型
fmt.Println(ptr.Name) // 可直接访问字段,Go 自动解引用
注意:通过指针访问结构体字段时,Go 会自动解引用,不需要写 (*ptr).Name,直接用 ptr.Name 即可。
常用于需要修改原变量的场景:
func increment(x *int) {
*x++
}
val := 10
increment(&val)
fmt.Println(val) // 输出 11
</font>
这里传入的是 &val,把值类型变量的地址传给函数,函数内部通过指针修改原始值。
基本上就这些。只要记住:要得到值的指针,就用 &变量名。不复杂但容易忽略细节,比如忘记加 & 会导致传值而非传引用。
以上就是golang如何将值类型变量转为指针的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号