Go指针是什么-创新互联

这篇文章主要介绍Go指针是什么,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

专注于为中小企业提供成都网站制作、网站建设、外贸网站建设服务,电脑端+手机端+微信端的三站合一,更高效的管理,为中小企业茅箭免费做网站提供优质的服务。我们立足成都,凝聚了一批互联网行业人才,有力地推动了上千余家企业的稳健成长,帮助中小企业通过网站建设实现规模扩充和转变。

结合这个例子分析一下

Go指针是什么

结果:

Go指针是什么

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

Go指针是什么

①对于所有带a的结果

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

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

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

Go指针是什么

②所有带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

Go指针是什么

③所有带c的结果

Go指针是什么

如上图所示:

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

以上总结一下:

Go指针是什么

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

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

*&可以抵消

以上是Go指针是什么的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注创新互联-成都网站建设公司行业资讯频道!


网站标题:Go指针是什么-创新互联
URL地址:http://ybzwz.com/article/spjec.html