跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • Go 语言里面的指针: array *[ ]int 和 array[ ]*int 的区别是啥
未分類
20 4 月 2020

Go 语言里面的指针: array *[ ]int 和 array[ ]*int 的区别是啥

Go 语言里面的指针: array *[ ]int 和 array[ ]*int 的区别是啥

資深大佬 : tqz 26

我定义数组指针的时候用的是:var array [3]*int

我在函数里面传递一个数组的地址的时候要用一个数组指针来接收它的地址,我写的是:array *[]int

这两种写法的区别是啥啊

大佬有話說 (9)

  • 資深大佬 : Fitz

    数组元素指针和数组本身指针

  • 資深大佬 : justin2018

    数组指针是指向数组地址的指针

    指针数组是数组里面全都是指针类型

    https://learnku.com/docs/qianxi-golang/section-4-pointer-array-pointer-and-pointer-array/6347

    我当初是看这个理解的

  • 主 資深大佬 : tqz

    ## 我的 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(“%pn”, ptr[i])
    }
    }
    “`

  • 資深大佬 : mcfog

    我感觉这是大概率没搞明白 golang 语境下的 slice array pointer 这几个东西才会写出这样的类型问出这样的问题来,建议先看任意教程的相关内容

  • 資深大佬 : silvernoo

    slice 的指针没有意义

  • 資深大佬 : CEBBCAT

    数组名是一个数据结构,包含长度,容量,和一个指向内容的指针。那么*[] int 是指向一个数组名的指针,而[]*int 是元素为 int 指针的数组。

    建议用小例子来检查一下,我也是初学(另外求上海 Go 可转正实习)

  • 資深大佬 : Allianzcortex

    数组指针和指针数组,想起了期末考试的 C++ 题…

  • 資深大佬 : xuanbg

    array *[ ]int 是数组指针,指向一个数组的指针,它是个指针。array[ ]*int 是指针数组,是存放若干指针的数组,它是个数组。

  • 資深大佬 : jack1998

    @xuanbg []int 是切片吧

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具