1
Fitz 2020-04-16 22:35:12 +08:00
数组元素指针和数组本身指针
|
2
justin2018 2020-04-16 22:36:35 +08:00
数组指针是指向数组地址的指针
指针数组是数组里面全都是指针类型 https://learnku.com/docs/qianxi-golang/section-4-pointer-array-pointer-and-pointer-array/6347 我当初是看这个理解的 |
3
tqz OP ## 我的 demo
```go package main import "fmt" func main() { array := []int{1, 2, 3, 4, 5} fmt.Println("array[0]=", array[0]) changeArray(&array) fmt.Println("array[0]=", array[0]) } // 函数的指针参数 func changeArray(array *[]int) { (*array)[0] = 123456789 } // 数组指针:指的是一个指针,只不过这个指针指向了一个数组 // 指针数组:指的是一个数组,这个数组里面装满了指针。 func arrayPtr() { a := []int{1, 2, 3} len := len(a) var ptr [3]*int for i := 0; i < len; i++ { ptr[i] = &a[i] } for i := 0; i < len; i++ { fmt.Printf("%p\n", ptr[i]) } } ``` |
4
mcfog 2020-04-16 23:40:11 +08:00
我感觉这是大概率没搞明白 golang 语境下的 slice array pointer 这几个东西才会写出这样的类型问出这样的问题来,建议先看任意教程的相关内容
|
5
silvernoo 2020-04-16 23:41:35 +08:00
slice 的指针没有意义
|
6
CEBBCAT 2020-04-16 23:58:08 +08:00 via Android
数组名是一个数据结构,包含长度,容量,和一个指向内容的指针。那么*[] int 是指向一个数组名的指针,而[]*int 是元素为 int 指针的数组。
建议用小例子来检查一下,我也是初学(另外求上海 Go 可转正实习) |
7
Allianzcortex 2020-04-17 01:02:39 +08:00 via iPhone
数组指针和指针数组,想起了期末考试的 C++ 题...
|
8
xuanbg 2020-04-17 08:19:46 +08:00
array *[ ]int 是数组指针,指向一个数组的指针,它是个指针。array[ ]*int 是指针数组,是存放若干指针的数组,它是个数组。
|
10
TransAM 2020-04-24 21:25:45 +08:00 via Android
@Allianzcortex golang 的设计比 c 合理多了,从右往左读都不用加括号
|