Go基础(复杂类型):指针

2023-10-27

Go语言指针

Go 具有指针。 指针保存了变量的内存地址。


  • 类型 *T 是指向类型 T 的值的指针。其零值是 nil
var p *int
  • & 符号会生成一个指向其作用对象的指针。
i := 42
p = &i
  • * 符号表示指针指向的底层的值。
fmt.Println(*p) // 通过指针 p 读取 i
*p = 21         // 通过指针 p 设置 i

这也就是通常所说的“间接引用”或“非直接引用”。

与 C 不同,Go 没有指针运算。

例如以下的例子:

package main

import "fmt"

func main() {
    //定义一个变量i等于42
    i := 42

    //方式一
    //&i指针,生成一个指针,指向作用对象i
    p := &i

    //*T符号表示指针指向的底层的值
    fmt.Println(*p)

    //通过这个指针去操作i,去改变i的值
    *p = 21
    fmt.Println(i)

    //定义一个变量j,值为2701
    j := 2701

    //方式二
    //&i指针,生成一个指针,指向作用对象i
    //*p(除后的值) = *p(2701)/37
    p = &j
    *p = *p/37
    fmt.Println(j)

}

输出结果:

42
21
73

好啦,指针的学习就到此结束啦。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Go基础(复杂类型):指针 的相关文章

  • 关于指针运算的一道题

    目录 刚看到这道题的时候我也和大多数小白一样感到无从下手 但是在我写这篇博客的前几分钟开始我对这道题有了一点点的理解 所以我就想着趁热打铁 写一篇博客来记录一下我的想法 题目如下 画图 逐一解答 题一 cpp cpp 1 c 2 POINT
  • go语言RSA加密算法(一):生成密钥对

    生成密钥对 分别存储到公钥文件 files public pem 私钥文件中 files private pem package main import crypto rand crypto rsa crypto x509 encoding
  • C语言实验(十四):指针(数组排序,数组求平均数、中位数和众数)

    C语言实验 十四 指针 数组排序 数组求平均数 中位数和众数 一 输入10个整数 利用指针分别由小到大排序 由大到小排序 二 输入10个整数 通过指针引用数组 实现三个函数 分别求这10个整数的平均值 中位数 中值 数组名作为函数参数 通过
  • Go语言简介

    一 Go编程语言概述 Go语言也叫Golang 是由谷歌 Google 公司在2007年推出的一款静态编译型语言 主要将其用于服务端开发 并发编程和网络编 程等 1 1 Go语言特性及应用场景 1 容易上手 2 编程速度快 3 原生支持并发
  • int *const p和 int const *p 的区别

    1 对于int const p const 限定的是p所指的对象 所以p指针所指的地址在这个情况下是不能改变的 2 对于 int const p const限定的是 p 所以 p所指的值是不可以改变的 但是可以改变p所指的对象 3 更多的列
  • 数组指针数组的定义及使用(about array of pointer of array)

    数组指针数组 array pointer array 该怎么定义和使用呢 如下 定义 define MsgCnt 3 define MsgLen 8 typedef char MsgArray MsgCnt MsgLen typedef c
  • TypeScript实现八大排序与搜索算法

    前言 我们在页面上渲染数据时 通常会根据特定规则来对数据进行一个排序 然后再将其渲染到页面展示给用户 那么对数据进行排序有很多种方式 哪一种效率高 哪一种稳定性好 那一种占用内存小 本文将详解经典的八大排序算法以及三种搜索算法 并用Type
  • C++中引用的用法以及将引用作为函数的形参

    在C 中引用就相当于是给变量起了一个别名 有点类似于指针 但是与指针又不同 引用的初始化 int i i 10 变量i的引用 引用必须在创建的时候就要初始化 而指针可以在任意的时候初始化 引用就相当于是给变量起了一个别名 int i r i
  • 二叉链表之寻找两节点的最近公共祖先☆

    题目 p q分别为指向该二叉树中任意两个节点的指针 试编写算法ancestor root p q r 找到p q的最近公共祖先节点r 分析 上一道题其实可以给我们一些启示 就是我们可以将任意节点的祖先存起来 那这里我们也可以用两个栈 分别将
  • 字符串数组反转输出 以空格为单词分隔符 C++

    给出字符串数组及其长度 字符串有若干单词和空格组成 下边代码将数组中单词反转输出 输入 Welcom to Hubei Wuhan 输出为 Wuhan Hubei to Welcom 代码思路为 1 定义两个指针 分别指向一个单词的开头和结
  • c语言初级指针详解,一级指针,二级指针。n级指针

    目录 一 1级指针 1 1 内存的使用 1 2 c语言内存中数据的访问 1 3 一级指针的定义方式 1 4 通过指针访问数据 二 二级指针 2 1二级指针的创建和访问 总结 一 1级指针 首先在对指针进行理解之前 我们要清楚下面这几个个概念
  • 初识Java——指针

    指针 Pointer 还记得第一次接触指针是在大一的c语言学习中 当时学完之后只知道 就是代表的指针 但是至于其真实含义及用法还没有真正学会 这一次从零开始学习Java 又一次学习到了指针 因此对指针有了更多的认识 下面就是通过最近的学习我
  • 【c++primer第五版】第六章函数-函数基础、参数传递、返回类型、函数重载、函数指针

    目录 函数基础 局部对象 函数声明 参数传递 main 处理命令行选项 特殊用途语言特性 调试帮助 函数匹配 函数指针 函数是一个命名了的代码块 通过调用相应的函数来执行相应的代码 函数可以有0或多个参数 通常会产生一个结果 也可以重载函数
  • 443.压缩字符串

    443 压缩字符串 给你一个字符数组 chars 请使用下述算法压缩 从一个空字符串 s 开始 对于 chars 中的每组 连续重复字符 如果这一组长度为 1 则将字符追加到 s 中 否则 需要向 s 追加字符 后跟这一组的长度 压缩后得到
  • 数据结构-图的创建(邻接矩阵,邻接表)C语言实现

    图的定义 图 Graph G由两个集合V和E组成 记为 G V E 其中V是顶点的有穷非空集合 其实就是顶点 E是V中顶点偶对的有穷集合 就是边 V G 和E G 通常分别表示图G的顶点集合以及边集合 E G 可以为空集合 但是此时的图只有
  • C/C++ 指针详解

    指针详解 参考视频 https www bilibili com video BV1bo4y1Z7xf 感谢Bilibili fengmuzi2003的搬运翻译及后续勘误 也感谢已故原作者Harsha Suryanarayana的讲解 RI
  • 数据结构之链表与线性表

    数据结构之链表与线性表 线性表 顺序线性表 顺序表 顺序线性表 使用数组实现 一组地址连续的存储单元 数组大小有两种方式指定 一是静态分配 二是动态扩展 优点 随机访问特性 查找O 1 时间 存储密度高 逻辑上相邻的元素 物理上也相邻 缺点
  • 指针加法:c = (int *) ((char *) c + 1)与 c=c+1 的区别

    示例代码 include
  • C语言之指针知识大总结

    文章目录 一 地址 二 指针与指针变量 三 指针的作用 四 初学指针时常见的错误 五 通过调用函数修改主调函数中的值 六 指针与一维数组 七 使用函数操作一维数组 八 指针变量所占字节数 九 静态数组的缺陷 十 malloc函数 十一 动态
  • 智能指针之与shared_ptr有关的enable_shared_from_this类模板04

    一 enable shared from this模板类详解 什么时候该使用enable shared from this模板类 当我们需要一个类对象返回本身并且该类使用了shared ptr智能指针时 就需要使用enable shared

随机推荐

  • 自主设计,模拟实现 RabbitMQ - 多虚拟主机管理

    目录 前言 一 多虚拟主机管理 1 1 需求分析 1 1 1 回顾 1 1 2 实现方案 1 2 具体实现 lt
  • 学习 stm32 FATFS文件系统基础知识与示例应用

    文件系统 负责管理和存储文件信息的软件机构称为文件管理系统 简称文件系统 即在磁盘上组织文件的方法 理解 包含了对介质存储器进行地址 内容 读取操作的一些封装的功能API方便应用层直接使用 常用的文件系统 FAT FATFS NTFS 基于
  • 三色标记清除法

    文章目录 1 三色标记算法的概述 2 三色标记的过程 3 存在问题 3 1 错标 3 2 漏标 4 解决错杀问题 4 1 CMS 写屏障 增量更新 Incremental Update 4 2 G1 写屏障 原始快照 STAB 1 三色标记
  • 链表的应用:单元多项式的加法、减法、乘法

    使用链表来实现单元多项式的加法 减法 乘法 一个单元多项式的节点结构无非是这样的 系数域 指数域 链域 如下图 我们使用链表来模拟单元多项式的常见运算 其中 加法是其它运算的基础 减法 poly1 poly2 poly1 poly2 乘法
  • 异常介绍。

    异常 1 了解异常的概念 编写的程序是来源或超脱于现实生活的 生活中 不符合你预期情况的场景 就是出现异常了 程序中的异常 Scanner in new Scanner System in System out print 请输入被除数 i
  • Unity 划线 - 使用Image实现划线

    unity使用Image实现划线功能 unity中划线的方式有很多 LineRender OpenGL 记录像素点等方式都可以实现划线的功能 如想了解其他划线方式 请看我的另一篇文章 gt Unity OpenGL 实现 阴阳师画符 划线功
  • Construct2 第一次制作的小游戏

    简单聊聊我是怎么制作出这款游戏 游戏介绍 先简单介绍一下游戏玩法 这款游戏中你可以操控女孩上下左右移动 用鼠标点击丘比 女孩会向丘比发射向日葵 如果丘比被向日葵打中三次 丘比就会死亡 并伴有爆炸效果 如果女孩不小心碰到了丘比 女孩也会死亡
  • 阿里云服务器vCPU和CPU有区别吗?

    阿里云服务器vCPU是什么 vCPU和CPU有什么区别 CPU是指云服务器的中央处理器 一个CPU可以包含若干个物理核 一台云服务器ECS实例的CPU选项由CPU物理核心数和每核线程数决定 通过超线程HT Hyper Threading 技
  • Ubuntu开机进不去系统,出现/dev/sda4: clean

    目录 一 问题描述 二 解决方法 2 1查看ubuntu的内存 2 2解决方法 2 3额外清理 三 查看ubuntu内存 开机恢复后 一 问题描述 我是双系统 忙完后电脑关机 第二天再进入ubantu系统就进不去了 网上解决这个问题的有很多
  • java 方法中的形参传值

    今天看到一个String传值问题 才发现以前的认知都是错的 为防止以后忘记 写下来 先来看一个问题 public static void main String args String a abc String b bcd change a
  • mysql存储过程事务处理

    今天分享的内容是mysql内存储过程进行事务处理 多研究下mysql的存储过程会发现 存储过程的业务流程可以看作我们java里的service里的业务方法 在存储过程添加了事务 就能保证存储过程内的dml操作保持一致性 要么成功要么失败 是
  • 检查 QProcess 对象的状态的所有接口

    QProcess isOpen QProcess isOpen 是 QProcess 类中的一个成员函数 用于检查 QProcess 对象是否已打开 在 QProcess 对象打开和启动外部进程后 可以使用该函数来判断它的状态 函数签名如下
  • OD(1)之git更换远程仓库的url地址

    OD 1 之git更换远程仓库的url地址 Author OnceDay Date 2023年4月17日 1 更换远程仓库的url地址 使用下面命令即可 ubuntu gt tdata git remote help error Unkno
  • 区块链-02-BTC-密码学原理

    目录 区块链与密码学 一 哈希 散列 函数 二 密码散列函数 Cryptographic hash function Collision resistance Hiding digital commitment puzzle friendl
  • 常见分布式系统生成唯一ID的方案

    1 数据库自增长序列或字段 2 UUID 3 UUID的变种 4 Redis生成ID 5 Twitter的snowflake算法 mybatis plus自带策略 6 利用zookeeper生成唯一ID 链接地址 https www cnb
  • 面经:静态多态和动态多态的区别?

    静态多态 Static Polymorphism 和动态多态 Dynamic Polymorphism 是C 中两种不同的多态性形式 1 静态多态 编译时多态 也称为函数重载或模板多态 静态多态是通过函数重载或模板特化来实现的 在编译时确定
  • css动画每日积累

  • c# 获取machineguid_C#正则表达式获取guid(亲测完美解决代码)

    前言 代码亲自测试过 放心使用 完美解决 网上很多文章都没有写清楚 到底是从一段字符串中截取其中的guid 还是判断一段字符串到底是不是guid GUID格式 由三十二位数字和字母组成 8位 4位 4位 4位 12位 c 使用正则表达式从一
  • DL(五)利用softmax线性分类器对线性不可分数据进行分类

    下面为代码 Train a Linear Classifier import numpy as np import matplotlib pyplot as plt np random seed 0 N 100 number of poin
  • Go基础(复杂类型):指针

    Go语言指针 Go 具有指针 指针保存了变量的内存地址 类型 T 是指向类型 T 的值的指针 其零值是 nil var p int 符号会生成一个指向其作用对象的指针 i 42 p i 符号表示指针指向的底层的值 fmt Println p