Go 语言中数组指针作为参数传递时,如何影响原数组?

go 语言中数组指针作为参数传递时,如何影响原数组?

理解 go 语言中数组指针作为参数的传递机制

go 语言允许以数组指针的方式传递数组参数,这将对原数组产生不同的影响。下面我们将逐一分析此代码片段中的各个函数。

update1

func update1(a [3]int) {    a[1] = 1}

登录后复制

update1 接收的是一个数组副本。对该副本的修改不会影响原数组。

update2

func update2(p *[3]int) {    a := *p    a[1] = 2}

登录后复制

update2 接收的是数组指针。但是,a := *p 也会创建一个数组副本。因此,对该副本的修改也不会影响原数组。

update3

func update3(p *[3]int) {    (*p)[1] = 3}

登录后复制

update3 接收的是数组指针,并且直接修改指向的数组。因此,对数组的修改会影响原数组。

update4

func update4(p *[3]int) {    p[1] = 4}

登录后复制

update4 实际上相当于 update3 的语法糖,同样是对数组指针的直接修改,从而影响原数组。

以上就是Go 语言中数组指针作为参数传递时,如何影响原数组?的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2315872.html

(0)
上一篇 2025年2月28日 14:38:58
下一篇 2025年2月25日 22:58:10

AD推荐 黄金广告位招租... 更多推荐

相关推荐

发表回复

登录后才能评论