gpt4 book ai didi

pointers - 如何在go中定义一个指针,然后将这个指针传递给一个func来改变它的值?

转载 作者:数据小太阳 更新时间:2023-10-29 03:47:10 24 4
gpt4 key购买 nike

import "fmt"

func zeroptr(ptr *int) {
*ptr = 0
}

func main() {
oneptr * int
*ptr = 1
fmt.Println("ptr is :", *ptr)
zeroptr(ptr)
fmt.Println("after calling zeroptr, the value of ptr is :", *ptr)
}

这不起作用,我正在寻找如下输出:

ptr 是 :1

调用zeroptr后,ptr的值为:0

最佳答案

您应该使用传递一个 &int 给 zeroptr,如 this example :

package main

import "fmt"

func zeroptr(ptr *int) {
*ptr = 0
}

func main() {

var ptr int
ptr = 1
fmt.Println("ptr is :", ptr)
zeroptr(&ptr)
fmt.Println("after calling zeroptr, the value of ptr is :", ptr)
}

输出:

ptr is : 1
after calling zeroptr, the value of ptr is : 0

您可以在“What's the point of having pointers in Go?”中看到类似的示例,来自 golang book .

关于pointers - 如何在go中定义一个指针,然后将这个指针传递给一个func来改变它的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27867148/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com