将指针传递给函数允许修改它们引用的值。但是,需要了解指针的内部工作原理才能正确执行此操作。
要修改指针指向的值,必须取消引用指针。在 Go 中,星号运算符 (*) 用于此目的。通过取消引用指针,您可以访问它指向的基础值。
关键区别在于更改指针的值和更改其值之间指向.为指针变量分配新值只会更改它存储的地址。例如,下面的代码片段不会修改指向的值:
<code class="go">func f(p *Test) { p = &Test{4} }</code>
要修改指向的值,需要使用解引用运算符。这可以显式或隐式完成。
显式解除引用:
<code class="go">func f(p *Test) { *p = Test{4} }</code>
隐式解除引用:
<code class="go">func f(p *Test) { p.Value = 4 }</code>
在这两种情况下,p 指向的值都会更改。
将指针传递给指针(*测试)允许修改存储在主函数中的指针值。但是,它不会改变原始指针指向的值。
<code class="go">func f(p **Test) { *p = &Test{4} }</code>
综上所述,在向函数传递指针时,了解修改指针的值和修改它的值之间的区别至关重要指向.取消引用指针对于执行后一个操作至关重要,从而可以修改基础数据值。
以上是如何修改 Go 中指针取消引用的值?的详细内容。更多信息请关注PHP中文网其他相关文章!