前言
Hey,大家好呀,我是星期八
作为21世纪的C语言,Go可能多方面思考,最终还是保留了指针。
但是要比C语言指针简单很多,一起来看看叭。
引言
因为Go语言是类C语言,所以为了提高效率,仍然保留了指针。
但是如果没有接触过指针,可能学起来指针需要多多思考一下了。
指针通常情况下,也被称为小白劝退神奇。
基本类型指针的理解
先看这两行代码。
内存分布图如下。
&
如图所示。
如果这两个能理解,恭喜你,指针已经会了一半了。
引用类型指针的理解
先看这样的代码。
内存分布图如下。
值类型和引用类型
值类型
在Go中,值类型主要有。
intfloatboolstring数组struct(结构体)
内存分布大致如下。
字符串数组结构体
引用类型
在Go中,引用类型主要有。
切片(slice)map管道(chan)
内存分布大致如下。
栈内存和堆内存的区别
栈内存在存储上,只能存一些简单的东西,比如数字了,字符了,浮点数了之类的,但是栈内存分配的内存程序员不用回收,由系统自己回收,并且性能很高。
C++GCGC
&*
&
*
示例
*intint
代码
执行结果。
可以看到打印的也是一个地址,但是内存图还是基本类型图。
c*c
关于函数
我们一直在强调,操作只会操作栈上面的值,函数同理。
执行结果。
总结
&*
如果在操作过程中有任何问题,记得下面留言,我们看到会第一时间解决问题。我是码农星期八,如果觉得还不错,记得动手点赞一下哈。感谢你的观看。