二十五岁时我们都一样愚蠢、多愁善感,喜欢故弄玄虚,可如果不那样的话,五十岁时也就不会如此明智。
标题:Go 语言指针数组
指针数组就是数组里的每一个元素保存的都是其它变量的地址的数组
一般情况下很少用到指针数组
在我们继续学习指针数组前,我们先来看一个范例
下面的范例定义了一个长度为 3 的整形数组
/** * file: main.go * author: 简单教程(www.twle.cn) * Copyright © 2015-2065 www.twle.cn. All rights reserved. */ package main import "fmt" const MAX int = 3 func main() { a := []int{10,100,200} var i int for i = 0; i < MAX; i++ { fmt.Printf("a[%d] = %d\n", i, a[i] ) } }编译运行以上 Go 语言范例,输出结果如下
$ go run main.go a[0] = 10 a[1] = 100 a[2] = 200指针数组
假如,我们需要保存数组里每一个元素的内存地址,这样,我们就需要使用指针数组
指针数组就是数组里的每一个元素保存的都是其它变量的地址的数组
语法
Go 语言声明指针数组的语法格式如下
var ptr [MAX]*int;ptr 为整型指针数组
范例
/** * file: main.go * author: 简单教程(www.twle.cn) * Copyright © 2015-2065 www.twle.cn. All rights reserved. */ package main import "fmt" const MAX int = 3 func main() { a := []int{10,100,200} var i int var ptr [MAX]*int; for i = 0; i < MAX; i++ { ptr[i] = &a[i] /* 整数地址赋值给指针数组 */ } for i = 0; i < MAX; i++ { fmt.Printf("a[%d] = %d\n", i,*ptr[i] ) } }编译运行以上 Go 语言范例,输出结果如下
$ go run main.go a[0] = 10 a[1] = 100 a[2] = 200