GO的学习(3)
指针
定义
指针,从字面意义上理解就是一个指向的过程。由于变量的创建赋值本质上是在操控内存空间,当新建一个变量并且赋值的时候,内存会创造出一块空间来存放这个变量,而这个空间也有其地址,因此将其他变量也指向该地址也就能通过其他变量来控制他。
如果要使用该内存的数据则要在变量前加上*,感觉上是类似于提取的意思这个。指针变量本身也存在一片内存空间。
存储指针变量的指针变量
一个*号为指针变量,两个*号为存储指针变量的指针变量,感觉有点套娃的意思。
大概是这个感觉,此时也和上面一样 c本身存在一个地址,c指向的是b的地址,*c指向的是b指向的地址即a的地址,想要提出a的值要使用两个*号
指针的使用
数组指针:首先是一个指针,指向数组的地址
大体上和前面的一样,都是创造指针变量进行取地址一些操作,但是作为数组指针创建的指针也应该为数组且与指向的变量要保持一致
简化写法上(语法糖),由于指向了这个地址,就当做数组用就行了,可以直接修改里面的值。(但是实际上好像还是指针。)
指针数组:首先是一个数组,存储的数据类型是指针
定义了一个指针数组里面存入变量的地址就可以直接通过指针的方式*xxx修改里面的值。
指针函数:
函数可以将指针作为参数,也可以将指针作为返回值使用
由于传入的参数本质上是地址,因此突破了值传递的限制。
结构体
结构体的定义
结构体是由一堆相同或者不同的变量数据集合而成的数据集合,一般用来保存某一类事务的属性(有点类似类?)
结构体的定义:type name struct{}
在以上的四种方法中唯一要注意的就是第四个方法如果不特地打出key值的话就要按照顺序来
结构体与指针
在验证了结构体为值传递之后可以通过指针实现引用传递。
匿名结构体
匿名结构体:不需要设置结构体的名字自,直接对一个变量进行使用。
匿名字段:不需要设置key值,后续赋给一个变量直接变量.xxx使用。
结构体的嵌套
结构体的嵌套,顾名思义就是在结构体中嵌套一层结构体。
结构体的导出:
自建一个新的文件夹作为包,在里面创造一个结构体,大写开头能被外部调用,小写则不行。
虽然一开始出现了许多问题,最后是放入了GOROOT的地址下解决了。
标签:变量,指向,学习,地址,数组,GO,指针,结构 From: https://www.cnblogs.com/wocai/p/17187931.html