理解 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