在Golang中遍历指针数组时,需通过解引用访问实际值。声明如var ptrArray [3]*int并初始化后,可用for-range遍历:获取指针地址用%p,解引用*ptr读写原值,注意避免nil解引用和修改range副本指针。

在Golang中使用指针数组并进行遍历时,关键在于理解数组存储的是指针类型,每个元素指向一个值。遍历这类数组时,你可以访问指针本身或通过解引用获取其指向的值。
指针数组的每个元素都是某个类型的指针。例如,*int 类型的数组可以这样创建:
var ptrArray [3]*int<br>num1, num2, num3 := 10, 20, 30<br>ptrArray[0] = &num1<br>ptrArray[1] = &num2<br>ptrArray[2] = &num3
或者用切片更灵活地初始化:
立即学习“go语言免费学习笔记(深入)”;
nums := []int{10, 20, 30}<br>ptrSlice := make([]*int, len(nums))<br>for i := range nums {<br> ptrSlice[i] = &nums[i]<br>}遍历指针数组时,可以通过索引或 range 获取每个指针。
for i, ptr := range ptrSlice {<br> fmt.Printf("索引 %d 的指针地址: %p\n", i, ptr)<br>}for i, ptr := range ptrSlice {<br> fmt.Printf("索引 %d 的值: %d\n", i, *ptr)<br>}注意:确保指针非 nil 再解引用,避免 panic。
通过遍历并解引用,可以直接修改原始数据:
for _, ptr := range ptrSlice {<br> *ptr = *ptr * 2 // 将每个值翻倍<br>}执行后,原始 nums 切片中的值也会被更新,因为指针指向的是这些值的地址。
基本上就这些。只要理清“指针数组存的是地址,*操作符用来读写目标值”,遍历操作就很清晰了。
以上就是如何在Golang中使用指针数组遍历的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号