首页后端开发其他后端知识Golang指针如何使用,与指针什么不同

Golang指针如何使用,与指针什么不同

时间2024-03-25 05:08:03发布访客分类其他后端知识浏览268
导读:在实际案例的操作过程中,我们可能会遇到“Golang指针如何使用,与指针什么不同”这样的问题,那么我们该如何处理和解决这样的情况呢?这篇小编就给大家总结了一些方法,具有一定的借鉴价值,希望对大家有所帮助,接下来就让小编带领大家一起了解看看吧...
在实际案例的操作过程中,我们可能会遇到“Golang指针如何使用,与指针什么不同”这样的问题,那么我们该如何处理和解决这样的情况呢?这篇小编就给大家总结了一些方法,具有一定的借鉴价值,希望对大家有所帮助,接下来就让小编带领大家一起了解看看吧。


  

结合这个例子分析一下

结果:

结合以往C语言的基础,画了一张图来解释为什么会有上面这些值的出现。先查看下Go中的这两个运算符是啥吧。

①对于所有带a的结果

var a int = 1 定义了一个变量a值为1,如下图所示:

& a就是这个存放a变量值的地址

*& a 就是指向& a的一个指针,*& a = a = 1

②所有带b结果

var b *int = & a

类似C语言的 int *b = & a 定一个指向整形变量的指针b,b指向了a的地址

所以:

b = & a = 0xc04203c1d0

& b = 0xc042058018 & b是b这个指针变量的真实地址,就是执行后那个

*& b = *(& b) = b = & a = 0xc04203c1d0

*b = *& a = a = 1

③所有带c的结果

如上图所示:

var c **int = & b

实际上是定义了一个指向整形指针的指针变量

c = & b = 0xc042058018

*c = *& b = b = & a = 0xc04203c1d0

& c 是这个变量的真实地址,这里显示的就是运行的结果 0xc042068020

*& c 有经验可以发现 *& 直接消掉了 = c = 0xc042058018

**c咋一看不知道是什么,其实可以通过换算来进行求值

**c = **& b = *b = *& a = a = 1

***& *& *& *& *& c 这个可以先消去*& **c = 1

④关于x

x = *b = *& a = a = 1

以上总结一下:

& 通过变量取地址 * 通过地址取值

& a先得到地址,然后“ * xxx地址”得到该地址处变量的值,即a

*& 可以抵消


感谢各位的阅读,以上就是“Golang指针如何使用,与指针什么不同”的内容了,通过以上内容的阐述,相信大家对Golang指针如何使用,与指针什么不同已经有了进一步的了解,如果想要了解更多相关的内容,欢迎关注网络,网络将为大家推送更多相关知识点的文章。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: Golang指针如何使用,与指针什么不同
本文地址: https://pptw.com/jishu/652559.html
GO中recover错误处理是什么样的 MVVM模型的作用和组成部分是什么,Vue中怎样用

游客 回复需填写必要信息