美文网首页Go踩过的坑(杂)
指针调用方法容易犯的错误1

指针调用方法容易犯的错误1

作者: 哥斯拉啊啊啊哦 | 来源:发表于2019-04-16 23:39 被阅读0次

    上面的例子中,在指针的方法调用里,只能通过 t.val 的方式来赋值,这样外面才会跟着改变

    如果是  将一个 &Test 的地址直接付给 t ,外面的值不会改变。

    看下图,解决方法

    原因是 t = &Test 是把 t指针 变成指向 &Test 地址的指针,而 &Test 地址在函数调用完就销毁了,t 指回原来的地址,所以外面的值不会变。

    而图2是将指针指向地址的值取出来,再将值赋值,这样指针地址不变,外面的值也跟着改变。

    也就是在指针调用方法里面,要想改变外面指针的值,有2种方法,(一):  *t = value  (二): t.val = value 这两种方式。

    用 t = &value 这种方式,在指针的方法调用中途会改变,但调用结束后还是会变回原来的值,即外面的值不变.

    结合https://www.jianshu.com/p/a9a9c05b38d5 里面的(坑4),更好理解,暂时这么理解吧,待续

    相关文章

      网友评论

        本文标题:指针调用方法容易犯的错误1

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