golang 函数返回后不改变指针
在Go语言中,函数参数通过值传递。当你将一个指针传递给函数时,函数接收到的是指针的副本,而不是指针本身。因此,即使函数修改了指针指向的值,原始指针的值不会改变。
如果你希望在函数内部修改指针的值,并且使其在函数返回后保持修改后的值,你需要传递指针的指针或者使用返回值来更新原始指针。
以下是一个示例代码,演示了如何在函数内部修改指针的值并保持修改后的值:
package main import "fmt" func updatePointer(ptr *int) { *ptr = 42 // 修改指针指向的值为42 } func main() { var num int = 10 fmt.Println("Before:", num) // 输出 "Before: 10" updatePointer(&num) // 传递指针的地址给函数 fmt.Println("After:", num) // 输出 "After: 42" }