京东云服务器推荐配置、多种配置选择,满足不同业务需求!

热门推荐

⭐ 稳定入门选择

配置:2核2G/5M

适用场景:个人站点 / 轻量应用

特点:性价比高,稳定可靠

¥19/月
立即购买
流量友好

☁️ 轻量云主机

配置:2核4G 5M

适用场景:小型业务 / 博客 / 测试环境

特点:流量友好,性能均衡

¥149/年
立即购买
高性能

💻 云服务主机

配置:4核16G 8M

适用场景:中小型服务 / 多并发场景

特点:充足内存与带宽,性能强劲

¥750/年
立即购买
新人专享

🎁 新人福利

新人访问 → 点击 → 最新活动

可获取 3000元 礼券

立即领取
服务端 / Golang 教程 / Golang 指针
Go 数组和指针
Go 结构体和指针Go 语言函数返回指针

Go 数组和指针

Go编程语言或Golang中的指针是一个变量,用于存储另一个变量的内存地址。而数组是固定长度的序列,用于将同类元素存储在内存中。

您可以使用指向数组的指针,并将其作为参数传递给函数。为了理解这个概念,让我们举个实例。在下面的程序中,我们将使用一个包含5个元素的指针数组arr。我们要使用函数更新此数组。意味着在函数内部修改数组(此处的数组为{78,89,45,56,14}),并将在调用者处反映出来。因此,这里我们采用了updatearray函数,该函数具有指向数组的指针作为参数类型。使用updatearray(&arr)代码,我们传递了数组的地址。函数内(*funarr)[4] = 750 或 funarr[4] = 750 代码使用解引用方式给数组赋新值,该值将反映在原始数组中。最后,程序将给出输出[78 89 45 56 750]。

// Golang程序将指针传递给
//数组作为函数的参数
package main

import "fmt"

//定义个函数
func updatearray(funarr *[5]int) {

    // 使用索引值更改数组
    (*funarr)[4] = 750

    //您也可以编写
    //上面的代码行
    // funarr[4] = 750
}

func main() {

    //获取指向数组的指针
    arr := [5]int{78, 89, 45, 56, 14}

    //将指针传递给数组
    //并执行updatearray
    updatearray(&arr)

    //更新后的数组
    fmt.Println(arr)
}

输出:

[78 89 45 56 750]

注意:在Golang中,不建议使用指向数组的指针作为函数的参数,因为代码变得难以阅读。同样,它也不是实现此功能的好方法。为此,您可以使用slice而不是传递指针。

// Golang程式来说明
//使用切片作为函数的参数
package main

import "fmt"

func updateslice(funarr []int) {

    //更新值
    //在指定的索引处
    funarr[4] = 750
}

func main() {

    //定义一个切片
    s := [5]int{78, 89, 45, 56, 14}

    //将切片传递到
    //函数updateslice
    updateslice(s[:])

    //显示结果
    fmt.Println(s)
}

输出:

[78 89 45 56 750]
Go 结构体和指针Go 语言函数返回指针