Golang 教程
Golang 控制语句
Golang 函数 & 方法
Golang 切片 & 数组
Golang 结构体
Golang 字符串
Golang 接口
Golang 指针
Golang 并发
Golang 异常(Error)
Golang 其他杂项

Go 数组和指针

时间:2023年06月10日 阅读:220
以下内容仅是站长或网友个人学习笔记、总结和研究收藏。不保证正确性,因使用而带来的风险与本站无关!
淘客轩-衣食住行外卖生活好助手

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 数组和指针

本文地址:https://www.momojc.cn/golang/golang-pointer-to-an-array-as-function-argument.html

关于本站 | 隐私政策 | 免责声明 | 广告合作 | 我要投稿 | 后台管理

CopyRight © 2023-2024 MOMO教程 WWW.MOMOJC.CN , All Rights Reserved.

站长E-mail:378074730@qq.com 网站已运行:  运行时长:0.038 秒

京ICP备20029690号-1京ICP备20029690号-2 京公网安备11011402013892号京公网安备11011402013892号 中国互联网违法和不良信息举报中心 网络违法犯罪举报网站

本网站托管于 腾讯云 .由网站卫士提供网站加速和攻击防御服务 提供CDN加速/防御服务.由zblogcn强力驱动 又拍云提供CDN加速/云存储服务 51la网站统计