美文网首页
go关于指针值拷贝的一个易错点

go关于指针值拷贝的一个易错点

作者: zcxzcxczcx | 来源:发表于2021-03-16 14:10 被阅读0次

    程序如下:

    func main() {  

    var a = new(int) 

    fmt.Printf("before a======%v\n", a) 

    changeA(a) 

     fmt.Printf("after a======%v\n", a)

    }

    func changeA(a *int) { 

    a = new(int)

    }

    打印结果如下:

    结论:

    这里很容易以为函数changA里的参数是指针,所以changeA函数内部可以改变外部a的值,其实这里只是指针的值拷贝。

    但是如果changeA函数内部改变的是指针指向的值,那么外部a指针指向的值也是会改变的。

    相关文章

      网友评论

          本文标题:go关于指针值拷贝的一个易错点

          本文链接:https://www.haomeiwen.com/subject/qwhdcltx.html