指针数组是元素为指针的数组,声明格式为[N]Type或[]Type;2. 可通过取地址符&初始化,如[3]*int{&a, &b, &c};3. 用于避免大对象拷贝、共享数据修改等场景;4. 使用时需判空防panic,确保内存安全。

在Golang中,指针数组是指数组中的每个元素都是指向某个数据类型的指针。这种结构在需要共享或修改原始数据、避免拷贝大对象时非常有用。下面介绍如何声明、初始化和使用指针数组。
声明指针数组
指针数组的语法格式是 []*Type,表示一个切片(动态数组),其元素是指向 Type 类型的指针。如果使用固定长度数组,则写成 [N]*Type。
例如,声明一个包含3个指向 int 的指针的数组:var ptrArr [3]*int
初始化和赋值
可以手动为每个元素分配内存并赋值,也可以通过循环或字面量方式初始化。
立即学习“go语言免费学习笔记(深入)”;
a := 10
b := 20
c := 30
ptrArr := [3]*int{&a, &b, &c}
此时,ptrArr[0] 指向 a,解引用 *ptrArr[0] 得到 10。
使用场景与注意事项
指针数组常用于以下情况:
- 避免复制大型结构体,提升性能
- 多个地方需要修改同一数据源
- 构建动态数据结构,如链表、树节点等
确保指针不为空再解引用,否则会引发 panic。使用前应判断是否为 nil。
例如:
for _, ptr := range ptrArr {
if ptr != nil {
fmt.Println(*ptr)
}
}










