Go语言指针数组
所谓指针数组就是元素为指针类型的数组,在Go语言中定义一个指针数组,语法格式如下所示。
下面通过一个示例演示指针数组的使用。
声明:《Go系列教程》为本站“54笨鸟”官方原创,由国家机构和地方版权局所签发的权威证书所保护。
	
	
var ptr [3]*string
有一个元素个数与之相同的数组,将该数组中每个元素的地址赋值给该指针数组。也就是说该指针数组与某一个数组完全对应。可以通过 * 指针变量获取到该地址所对应的数值。下面通过一个示例演示指针数组的使用。
package main
import "fmt"
const COUNT int = 4
func main(){
    a := [COUNT]string{"abc", "ABC", "123", "一二三"}
    i := 0
    //定义指针数组
    var ptr [COUNT]*string
    fmt.Printf("%T, %v \n", ptr, ptr)
    for i = 0; i< COUNT; i++ {
        //将数组中每个元素的地址赋值给指针数组
        ptr[i] = &a[i]
    }
    fmt.Printf("%T, %v \n", ptr, ptr)
    //获取指针数组中第一个值, 其实就是一个地址
    fmt.Println(ptr[0])
    //根据数组元素的每个地址获取该地址所指向的元素的数值
    for i = 0; i< COUNT; i++ {
        fmt.Printf("a[%d] = %s \n", i, *ptr[i])
    }
}
运行结果如下:
	[4]*string, [<nil> <nil> <nil> <nil>]
	[4]*string, [0xc0000180c0 0xc0000180d0 0xc0000180e0 0xc0000180f0]
	0xc0000180c0
	a[0] = abc
	a[1] = ABC
	a[2] = 123
	a[3] = 一二三
声明:《Go系列教程》为本站“54笨鸟”官方原创,由国家机构和地方版权局所签发的权威证书所保护。
 
	