指针数组和数组的指针,指的是两个不同的东西。
指针数组是有指针组成的数组,数组的指针是一个数组的指针。
定义一个指针数组,例如:var ptr [3]*string
指针数组的例子:
func arraryPointer1() {
a := [4]string{"abc", "ABC", "123", "一二三"}
//查看数组指针的类型和值
fmt.Printf("%T,%v \n", &a, &a)
//定义指针数组
var ptv [4]*string
fmt.Printf("%T,%v \n", ptv, ptv)
//将数组中每个元素的地址复制给指针数组的每个元素
for i := 0; i < 4; i++ {
ptv[i] = &a[i]
}
fmt.Printf("%T,%v \n", ptv, ptv)
//根据指针数组元素的地址获取该地址所致的元素真实数值
fmt.Println(*ptv[0])
//遍历指针数组,打印真实数值
for _,val := range ptv {
fmt.Println(*val)
}
}