Go语言指针数组的用法(附带实例)
指针数组即元素均为指针的数组。在 Go语言中,使用 var 关键字声明指针数组。
声明指针数组的语法格式如下:
那么,指针数组的应用场景是什么呢?如果在 Go 语言程序开发过程中需要保存一个数组,那么就需要使用指针。
定义长度为 4 的 int 类型数组后,使用 for 循环遍历数组,并格式化输出数组中的元素。代码如下:
【实例 1】定义元素个数与数组 number 相同的指针数组 ptr,将数组 number 中每个元素的内存地址依次赋值给指针数组中的各个元素;格式化分别输出赋值前和赋值后的指针数组及其类型;遍历指针数组,格式化输出指针数组中各个元素指向的数组 number 中相应元素的值。
代码如下:
声明指针数组的语法格式如下:
var ptr [length]*type参数说明如下:
- ptr:指针数组的变量名;
- length:指针数组的长度;
- *:表示指针;
- type:指针数组的类型。
那么,指针数组的应用场景是什么呢?如果在 Go 语言程序开发过程中需要保存一个数组,那么就需要使用指针。
定义长度为 4 的 int 类型数组后,使用 for 循环遍历数组,并格式化输出数组中的元素。代码如下:
package main //声明 main 包 import "fmt" //导入 fmt 包,用于打印字符串 const length = 4 //定义表示数组长度为 4 的常量 func main() { number := []int{2, 4, 6, 8} //定义长度为 4 的 int 类型数组 for i := 0; i < length; i++ { //遍历数组 fmt.Printf("number[%d] = %d\n", i, number[i]) //格式化输出数组中的元素 } }运行结果如下:
number[0] = 2
number[1] = 4
number[2] = 6
number[3] = 8
【实例 1】定义元素个数与数组 number 相同的指针数组 ptr,将数组 number 中每个元素的内存地址依次赋值给指针数组中的各个元素;格式化分别输出赋值前和赋值后的指针数组及其类型;遍历指针数组,格式化输出指针数组中各个元素指向的数组 number 中相应元素的值。
代码如下:
package main //声明 main 包 import "fmt" //导入 fmt 包,用于打印字符串 const length = 4 //定义表示数组长度为 4 的常量 func main() { number := []int{2, 4, 6, 8} //定义长度为 4 的 int 类型数组 var ptr [length]*int //声明长度为 length 的 int 类型指针数组 fmt.Printf("%v, %T \n", ptr, ptr) //格式化分别输出指针数组及其类型 for i := 0; i < length; i++ { ptr[i] = &number[i] //将数组 number 中每个元素的内存地址依次赋值给指针数组中的每个元素 } fmt.Printf("%v, %T \n", ptr, ptr) //格式化分别输出指针数组及其类型 for i := 0; i < length; i++ { //格式化输出指针数组中每个元素指向的数组 number 中相应元素的值 fmt.Printf("number[%d] = %d\n", i, *ptr[i]) } }运行结果如下:
[<nil> <nil> <nil> <nil>], [4]*int
[0xc0000a4060 0xc0000a4068 0xc0000a4070 0xc0000a4078], [4]*int
number[0] = 2
number[1] = 4
number[2] = 6
number[3] = 8