zoukankan      html  css  js  c++  java
  • 区块链基础语言(十五)——Go语言指针

    一、基本概念

    1.1 内存地址

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

    1.2 指针变量

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

    1.3 变量和指针变量的关系

    程序中通过定义一个变量来申请一块数据存储空间,变量名即对一块数据存储空间命名。而在该变量前加一个取地址符“&”就可以获得该存储空间的地址。指针变量存储了内存地址。在指针变量前加一个取值运算符“*”就可以获得内存单元储存的值。指针和变量的关系如图1所示。

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

    1.4 空指针

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

    二、指针的基本操作

    2.1 指针变量的声明

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

    2.2 指针变量的使用流程

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

    三、new函数

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

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

    四、指针作为函数参数

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

    五、指向指针的指针

    5.1 指向指针的指针变量

    一个指针变量存放的又是另一个指针变量的地址,则称这个指针变量为指向指针的指针变量。如图所示,第一个指针存放第二个指针的地址,第二个指针存放变量的地址。

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

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

    示例如下:


    参考资料
    [1] 

  • 相关阅读:
    在MAC OS X系统上面安装mysql
    在项目中使用DSOFramer需要注意的一些地方
    记一次python安装PIL库所遇到的事
    Calendar.compareTo 比较时间的大小
    String 时间类型怎么进行比较大小?
    ElasticSearch--二、基本语法(创建索引,查询数据)
    ElasticSearch--一、使用场景以及对应软件配置安装
    Linux下nginx反向代理负载均衡几种方式以及配置
    node环境使用lowdb轻量数据库以及基本用法
    jQuery 日常笔记
  • 原文地址:https://www.cnblogs.com/efish/p/go-language-pointer.html
Copyright © 2011-2022 走看看