->:间接引用运算符

2023-05-16

->是一个整体,它是用于指向结构体、C++中的class等含有子数据的指针用来取子数据。换种说法,如果我们在C语言中定义了一个结构体,然后申明一个指针指向这个结构体,那么我们要用指针取出结构体中的数据,就要用到“->”.
举个例子:
struct Data
{
int a,b,c;
}; /*定义结构体*/
struct Data * p;/*定义结构体指针*/
struct Data A = {1,2,3};/*声明变量A*/
int x;/*声明一个变量x*/
p = &A ; /*让p指向A*/
x = p->a;/*这句话的意思就是取出p所指向的结构体中包含的数据项a赋值给x*/
/*由于此时p指向A,因而 p->a == A.a,也就是1*/

对于一开始的问题 p = p->next;这应该出现在C语言的链表,这里的next应该是一个与p同类型的结构体指针,其定义格式应该是:
struct Data
{
int a;
struct Data * next;
};/*定义结构体*/
…………
main()
{
struct Data * p;/*声明指针变量p*/
……
p = p->next;/*将next中的值赋给p*/
}
链表指针是C语言的一个难点,但也是重点,学懂了非常有用。要仔细讲就必须先讲变量、指针。
什么是变量?所谓变量,不要浅显的认为会变得量就是变量。套用我们院长的问话:“教室变不变?”变,因为每天有不同的人在里面上课,但又不变,因为教室始终在那,没有变大或变小。这就是变量:有一个不变的地址和一块可变的存储空间。正常情况下,我们只看到变量这个房间里面的东西,也就是其内容,但不会关注变量的地址,但是C语言的指针,就是这个房间的地址。我们声明变量就相当于盖了间房子存放东西,我们可以直接观看房子里的东西,而声明指针,就是相当于获得了一个定位器,当用指针指向某个变量时,就是用指针给变量定位,以后我们就可以用指针找到他所“跟踪”的变量并可以获得里面的内容。
那结构体呢?结构体就相当于是有好几个房子组成的别墅,几个房子绑定在一起使用。假设现在有很多这种别墅分布在一个大迷宫里,每间别墅里都有一间房子。里面放了另一个别墅的位置信息,现在你手拿定位器找到了第一栋别墅,从里面得到了你想要的东西(链表的数据部分),然后把下一栋别墅的位置计入你的定位器(p = p->next),再走向下一栋别墅……如此走下去,知道走到某地下一栋别墅信息没有了(p->next == NULL),你的旅行结束。这就是链表一次遍历的过程。现在你能明白 p=p->next的含义了吧!

转载于:https://www.cnblogs.com/yhc99/p/9231724.html

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

->:间接引用运算符 的相关文章

  • 解决Docker容器 iptables问题---docker: Error response from daemon: driver failed programming external conne...

    一 问题现象 最近在研究Docker容器日志管理时 xff0c 启动容器出现iptables相关报错 xff0c 具体问题如下 运行容器 root 64 node 11 docker run d p 24224 24224 p 24224
  • 内网穿透远程查看内网监控摄像头

    在现代社会中 xff0c 大家总是奔波于家和公司之间 大部分时间用于工作中 xff0c 也就很难及时知晓家中的动态情况 xff0c 对于家中有老人 小孩或宠物的 xff08 甚至对居住环境安全不放心的 xff09 xff0c 这已然是个棘手
  • 2022/6/15 docker安装与项目部署(入门教程)

    目录 一丶docker简介 二丶Docker私库简介 xff08 Dockerhub xff09 三丶Docker优势 四丶docker安装 4 1 使用官方安装脚本自动安装 xff08 仅适用于公网环境 xff09 4 2 手动安装 4
  • vim实现批量注释和批量删除注释

    批量注释 1 进入文档 xff0c vim test txt 后 xff0c 按住ctrl 43 v进入VISUAL BLOCK模式 xff0c 上下选择需要注释的行 2 按大写键 xff0c 再按i xff0c 或者直接按shift 43
  • 20191003

    A 把字典树建出来 xff0c 问题就转化成要选择m个节点 xff0c 使得它们能覆盖所有叶子节点 xff0c 且不存在两个节点使得一个是另一个的祖先 于是可以在字典树上跑树形dp xff0c 复杂度 O n 2m 或 O nm 2 xff
  • 20191004

    A 解 1 我们发现只需要关心处于结果字符串前 k 位的字符 因此考虑从后往前处理 对于一个询问区间 xff0c 我们暴力连边 xff0c 用并查集维护 xff0c x 的父亲等于 y 相当于位于 x 的字符是从位于 y 的字符处复制过来的
  • git 如何解决 (master|MERGING)

    git 如何解决 master MERGING git reset hard head 回退版本信息 git pull origin master 转载于 https www cnblogs com 651434092qq p 110188
  • linux ping 指定次数

    ping 192 168 0 1 c4 转载于 https www cnblogs com sea stream p 10345600 html
  • java 解决 java.lang.Integer cannot be cast to java.lang.String

    1 在执行代码打印map的value时 xff0c 提示错误java lang Integer cannot be cast to java lang String xff0c 这个错误很明显是类型转换错误 查看表字段的数据 解决方案 1
  • DBoW2应用

    图像对应的bag of words向量 v t 假设词典总共有 W 个单词 xff0c 那么每一幅图像能够用一个 W 维的向量表示 xff08 t 1 t 2 t 3 t W xff09 其中 t i 61 frac n id n nd l
  • 平衡车终于成功了

    说来惭愧2017 12 0118 13 27 并非原创 xff0c 代码资料也是从论坛搜刮的 自己做了适配性的调整 这个小车断断续续造了将近1个月 xff01 1 include 34 Wire h 34 96 2 include lt U
  • 彻底解决 Jenkins Slaver 节点无法执行 Git-LFS 命令

    最新配置新增一台iMac当作持续集成构建的Slaver节点 xff0c 添加节点很顺利 xff0c 但是拉取代码的时候发现无法正常 出现以下提示 xff1a hudson plugins git GitException Command 3
  • FreeRTOS

    在嵌入式领域中 xff0c 嵌入式实时操作系统正得到越来越广泛的应用 采用嵌入式实时操作系统 RTOS 可以更合理 更有效地利用CPU的资源 xff0c 简化应用软件的设计 xff0c 缩短系统开发时间 xff0c 更好地保证系统的实时性和
  • 使用固定的公网TCP端口地址远程桌面【内网穿透】

    文章目录 1 为远程桌面保留一个TCP地址2 配置远程桌面隧道2 1 登录cpolar web ui2 2 修改远程桌面隧道信息2 3 查看公网地址 3 使用固定TCP地址远程桌面总结 在上一篇文章中 xff0c 我们通过cpolar映射远
  • [Openwrt 项目开发笔记]:Openwrt平台搭建(一)补遗

    Openwrt项目开发笔记 系列文章传送门 xff1a http www cnblogs com double win p 3888399 html 正文 xff1a 昨晚上熬夜写了 Openwrt项目开发笔记 Openwrt平台搭建 xf
  • Mac下IDEA启动Springboot项目慢

    经过百度以及google查询发现 xff0c 启动时调用了java net InetAddress getLocalHost 方法 以此排查调用此方法慢的问题 网上的解决方法都是修改hosts xff0c 后来有人提出 xff0c 慢的原因
  • 关于varnish缓存

    目录 引言 xff1a 缓存的概念一 varnish缓存 1 简介2 总体结构 2 1 两个主进程2 2 Varnish的日志2 3 VCL varnish配置缓存策略的工具二 Varnish的工作模式 more 1 状态引擎的处理流程2
  • varnish6.X安装

    目录 1 rpm方式2 编译安装 2 1 依赖包2 2 编译Varnish 本文提供了两种安装方式 xff0c 但建议使用编译安装 官方链接 xff1a https varnish cache org 部署文档 xff1a https va
  • 安装ANSYS19.0的正确方法(附下载)

    安装ANSYS19 0的正确方法 卸载干净旧版本ANSYS 安装或重新安装之前必须先卸载干净 xff0c 安装过旧版本ANSYS的也要确保卸载干净 电脑环境准备参考以下内容 ANSYS 卸载后重装需要注意的问题 百度经验 https jin

随机推荐

  • 软件设计师 - 错题笔记

    2018 年 5 月 上午题 1 浮点数 浮点数对接时 xff0c 先对阶 xff0c 将小阶向大阶对齐 xff0c 同时尾数右移 n 位 xff08 n 为阶差的绝对值 xff09 2 流水线吞吐率 1 t 单位时间流水线处理的任务数 流
  • CAtia_打开提示:许可证过期怎么办

    CAtia 许可证过期怎么办 xff1a 进计算机管理 xff0c 点开服务和应用程序 xff0c 点服务 xff0c 找到DS License Server xff0c 在启动此服务的地方点启动 xff0c 从而开启DS License
  • 小米手机 fastboot 方式刷入 TWRP recovery 教程,以红米4X(santoni)为例

    最新版TWRP下载链接 xff1a https twrp me xiaomi xiaomiredmi4x html platform tools下载地址 xff1a https developer android google cn stu
  • 远程登录DSM,显示“您没有权限使用本项服务?

    远程登录DSM xff0c 显示 您没有权限使用本项服务 xff1f https www chiphell com thread 825297 1 1 html 有可能你单位用的是多wan接入 一般synology不让多个ip同一帐号同时接
  • 无人机寻迹要两个单片机吗_基于OpenMV的循迹无人机设计

    基于OpenMV的循迹无人机设计 发表时间 xff1a 2020 08 24 基于OpenMV机器视觉模块进行目标识别算法的研究 利用图像的滤波 二值化等算法对摄像头采集的图像进行预处理 利用边缘检测和形状识别算法获得引导线的路线信息 xf
  • linux 流量查看工具 iftop 配置

    linux 流量查看工具 iftop 配置 iftop是LINUX下查看网络流量的软件 iftop 官方网站 http www ex parrot com pdw iftop 1 iftop如何安裝 xff1a 首先查看自己的系统是否安裝
  • 技术系统进化法则是_技术系统进化论,模式七、系统由宏观向微观进化

    阿奇舒勒TRIZ理论三个核心思想 xff1a 1 无论是一个简单产品还是复杂的技术系统 xff0c 其核心技术的发展都是遵循着客观的规律发展演变的 xff0c 即具有客观的进化规律和模式 xff1b 2 各种技术难题和矛盾的不断解决是推动这
  • 吉他谱

    其实我是个诗人 01 得不到你 02 多想在平庸的生活拥抱你 03 往后余生 04 成都 转载于 https www cnblogs com zhangmingyan p 11603872 html
  • Openssl配置CA证书及https访问

    一 创建根秘钥对 1 创建目录 cd mkdir root ca cd root ca mkdir certs crl newcerts private chmod 700 private touch index txt echo 1000
  • Thread.currentThread().setContextClassLoader为什么不生效与java.lang.NoClassDefFoundError之Java类加载的Parent fir...

    众所周知 xff0c Java的类加载机制采用了双亲委派模型 xff0c 导致在进行类加载的时候会有多个加载器 xff0c 这种复杂的机制 xff0c 有时候会导致 Exception in thread main java lang No
  • C#编写的通过汉字得到拼音和五笔码

    public static class SpellAndWbConfig region 变量声明 XML文件读取实例 lt summary gt XML文件读取实例 lt summary gt private static XmlReade
  • 设置HTML5的video播放速度

    var speed 61 1 5 设置速度 var vdo 61 document getElementById 34 视频的id 34 获取id vdo playbackRate 61 speed 改变速度 合并一句 document g
  • uni-app 做路由拦截器

    插件市场 xff08 https ext dcloud net cn plugin id 61 159 xff09 吐槽 好多小伙伴跑来问我有没有Uni app视频教程 xff0c 收费的也行 各位uni app 你根本不需要买市面上几百块
  • 华为S5700交换机初始化和配置SSH和TELNET远程登录方法

    华为S5700交换机初始化和配置TELNET远程登录方法 xff1a 1 交换机开启Telnet服务 lt Huawei gt system view 进入系统视图 Huawei telnet server xff1f 查看有enable还
  • 方差的无偏估计如何计算?

    我们常常被问到 34 方差的无偏估计如何计算 xff1f 和有偏估计的区别是什么 xff1f 34 xff0c 心想 34 哎呀 xff0c 又忘了 34 本篇回归问题本质 xff0c 带你理解这些名词背后解决的实际问题 xff08 通过总
  • C++ for无限循环~

    无限循环 如果条件永远不为假 xff0c 则循环将变成无限循环 for 循环在传统意义上可用于实现无限循环 由于构成循环的三个表达式中任何一个都不是必需的 xff0c 您可以将某些条件表达式留空来构成一个无限循环 include lt io
  • VINS-Fuison调试笔记

    最近一直在断断续续的调试vins fuison xff0c odometry总是各种飘 xff0c 令人头大 记录一下调试过程 xff0c 供以后学习参考 首先选用一组可靠的视觉惯导传感器 xff0c 如Realsense D435i xf
  • 《C和指针》阅读笔记

    第9章 字符串 字符和字节 9 1 字符串基础 字符串就是一串 零个或多个字符 xff0c 并且以一个位模式为全0的NUL字节结尾 因此 xff0c 字符串所包含的字符内部不能出现NUL字节 NUL字节是字符串的终止符 xff0c 但它本身
  • 【蓝牙数据采集模块】-02-Sensor Controller 编写CC2650STK外设驱动

    上次说到把所有的传感器模块在Sensor Controller中实现读写 xff0c 并封装驱动 先来看一下CC2650STK的原理图 用红色方框标记的DIO 0 DIO 7 DIO 23 DIO 30是可以通过Sensor Control
  • ->:间接引用运算符

    gt 是一个整体 xff0c 它是用于指向结构体 C 43 43 中的class等含有子数据的指针用来取子数据 换种说法 xff0c 如果我们在C语言中定义了一个结构体 xff0c 然后申明一个指针指向这个结构体 xff0c 那么我们要用指