Go中指针存储变量地址,通过定义指针类型,&获取变量地址,new(T)分配并返回T类型零值的指针,示例展示指针的声明、赋值及通过操作目标变量,强调安全性与简洁性。

在 Go 语言中,指针是一个存储变量内存地址的变量。理解如何定义和初始化指针是掌握 Go 内存模型和高效编程的关键一步。
定义指针变量
Go 中通过在类型前加 * 来声明一个指针类型。例如:
var p *intvar s *string
上面代码定义了两个指针变量:p 是指向 int 类型的指针,s 是指向 string 类型的指针。此时它们的值为 nil,因为未初始化。
使用 & 获取变量地址
要让指针指向某个变量,可以使用取地址符 &:
立即学习“go语言免费学习笔记(深入)”;
x := 42p := &x // p 指向 x 的地址
此时 p 的值是变量 x 的内存地址,可以通过 *p 来读取或修改 x 的值:
fmt.Println(*p) // 输出 42*p = 100 // 修改 x 的值为 100fmt.Println(x) // 输出 100
new 函数初始化指针
Go 提供内置函数 new(T) 来创建并初始化一个类型为 T 的变量,并返回其地址:
p := new(int)*p = 42fmt.Println(*p) // 输出 42
new(int) 分配一块足够存放 int 类型的空间,将其初始化为零值(0),然后返回地址。这种方式适合需要动态分配内存但不依赖已有变量的场景。
综合实践示例
下面是一个完整的小例子,展示指针的定义、初始化与使用:
package mainimport "fmt"func main() { var a *int // 声明指针,初始为 nil b := 10 // 普通变量 a = &b // 指针指向 b 的地址 fmt.Println("b =", b) // 输出:b = 10 fmt.Println("a =", a) // 输出:a = 地址 fmt.Println("*a =", *a) // 输出:*a = 10 *a = 20 // 通过指针修改 b fmt.Println("b =", b) // 输出:b = 20 c := new(int) *c = 30 fmt.Println("*c =", *c) // 输出:*c = 30}
基本上就这些。Go 的指针语法简洁,没有指针运算,安全性高。熟练使用 & 和 new 能帮助你更灵活地管理数据和函数参数传递。
以上就是Golang如何定义指针变量与初始化_Golang 指针变量初始化实践的详细内容,更多请关注创想鸟其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1424800.html
微信扫一扫
支付宝扫一扫