区块链技术语言(十五):Go语言指针

栏目: C · 发布时间: 6年前

内容简介:本文完,获取更多资讯,敬请关注区块链工程师。

1

基本概念

1.1 内存地址

电脑存储器由一个个存储单元构成,为了对存储器进行有效的管理,就需要对各个存储单元编号,即给每个单元赋予一个地址码,这叫编址。计算机里每个内存单元的地址码就是这个内存单元的内存地址。

1.2 指针变量

通过内存单元的内存地址能找到这个内存单元,那么这个内存地址叫作指针(Pointer),而存放该地址的变量(通常简写为ptr),叫做指针变量。

1.3 变量和指针变量的关系

程序中通过定义一个变量来申请一块数据存储空间,变量名即对一块数据存储空间命名。而在该变量前加一个取地址符“&”就可以获得该存储空间的地址。

指针变量存储了内存地址。在指针变量前加一个取值运算符“*”就可以获得内存单元储存的值。

指针和变量的关系如图1所示。

区块链技术语言(十五):Go语言指针

指针和变量的关系如以下代码所示:

区块链技术语言(十五):Go语言指针

1.4 空指针

指针被定义后却没有分配到任何变量的地址,它的值为nil,而非NULL。

区块链技术语言(十五):Go语言指针

2

指针的基本操作

2.1 指针变量的声明

声明指针变量的关键词是var。指针变量存储的是内存地址,其指向的内存空间里存储的值的类型为Type,则指针变量类型为*Type。声明格式如下:

区块链技术语言(十五):Go语言指针

2.2 指针变量的使用流程

指针变量声明-------->为指针变量赋值-------->访问指针变量中地址指向的值。

区块链技术语言(十五):Go语言指针

3

new函数

new函数是一个用来分配内存的内建函数(就是由语法规定存在的函数),其格式为:

区块链技术语言(十五):Go语言指针

new函数并不初始化内存,传入的参数是类型(Type),返回的是指向新分配内存所属类型的零值的指针(*Type),即这块内存空间的地址(该内存空间存储的是该类型的零值)。

区块链技术语言(十五):Go语言指针

4

指针作为函数参数

指针作为函数参数时,为引用传递。自定义函数对形参进行的修改,也会影响到实际参数的值。

区块链技术语言(十五):Go语言指针

5

指向指针的指针

5.1 指向指针的指针变量

一个指针变量存放的又是另一个指针变量的地址,则称这个指针变量为指向指针的指针变量。

如图所示,第一个指针存放第二个指针的地址,第二个指针存放变量的地址。

区块链技术语言(十五):Go语言指针

5.2 指向指针的指针变量的声明格式

指向指针的指针变量的声明格式如下:

区块链技术语言(十五):Go语言指针

示例如下:

区块链技术语言(十五):Go语言指针

原文链接:区块链技术语言(十五):Go语言指针

参考资料

[1] https://baike.baidu.com/item/%E6%8C%87%E9%92%88/2878304?fr=aladdin

本文完,获取更多资讯,敬请关注区块链工程师。

区块链技术语言(十五):Go语言指针

来源:链块学院

本文由布洛克专栏作者发布,代表作者观点,版权归作者所有,不代表布洛克科技观点

——TheEnd——

关注“布洛克科技”

区块链技术语言(十五):Go语言指针


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Algorithms on Strings, Trees and Sequences

Algorithms on Strings, Trees and Sequences

Dan Gusfield / Cambridge University Press / 1997-5-28 / USD 99.99

String algorithms are a traditional area of study in computer science. In recent years their importance has grown dramatically with the huge increase of electronically stored text and of molecular seq......一起来看看 《Algorithms on Strings, Trees and Sequences》 这本书的介绍吧!

HTML 压缩/解压工具
HTML 压缩/解压工具

在线压缩/解压 HTML 代码

JSON 在线解析
JSON 在线解析

在线 JSON 格式化工具