这就是你了解的指针吗?

news2025/8/11 11:06:34

小叮当的任意门——指针

  • 1. 指针是什么?
  • 2. 指针和指针类型
    • 1. 指针+-整数
    • 2. 指针的解引用
  • 3. 野指针
    • 1. 野指针的成因
      • 未初始
      • 指针越界访问
      • 指针指向的空间释放
    • 2. 如何规避野指针
  • 4. 指针运算
    • 指针减指针
    • 指针的关系运算
  • 5. 二级指针
  • 6. 指针数组

1. 指针是什么?

请添加图片描述
在讲指针之前我们是需要先了解内存的请添加图片描述
请添加图片描述
指针是内存中一个最小单元的编号,也就是地址
请添加图片描述
取地址a是取的第一个字节的地址
请添加图片描述
把a的地址存储起来放在pa中,存起来跟不存起来是有区别的。请添加图片描述
平时口语中说的指针,通常指的是指针变量,是用来存放内存地址的变量
请添加图片描述
请添加图片描述
请添加图片描述
要知道*pa与pa的区别。
在这里插入图片描述
在这里插入图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
为4GB
在这里插入图片描述

2. 指针和指针类型

在这里插入图片描述
请添加图片描述
为什么不用统一的ptr类型呢?因为各个类型有自己的作用。
请添加图片描述
请添加图片描述
为什么全变0了?
请添加图片描述
这个怎么就变一个呀?
这就是指针类型的意义
请添加图片描述
请添加图片描述
请添加图片描述
所以
请添加图片描述决定步长
在这里插入图片描述
用循环也可以改变

1. 指针±整数

请添加图片描述这就是刚刚上面讲的
在这里插入图片描述

2. 指针的解引用

在这里插入图片描述上面也说明过

3. 野指针

请添加图片描述

1. 野指针的成因

未初始

请添加图片描述
这里面没有初始化
请添加图片描述
请添加图片描述

指针越界访问

在这里越界访问了,所以后面的就随机打印一个数字
请添加图片描述

指针指向的空间释放

请添加图片描述

这个也是的,李四叫张三来如家客栈,住宾馆,后面张三来了,李四早就退房了。

请添加图片描述

请添加图片描述

请添加图片描述

请添加图片描述

2. 如何规避野指针

在这里插入图片描述

4. 指针运算

请添加图片描述
这其实就是前面讲的
请添加图片描述
要注意:

请添加图片描述
请添加图片描述
这就不行
请添加图片描述
请添加图片描述

指针减指针

请添加图片描述
后面因为是循环
请添加图片描述
请添加图片描述
请添加图片描述
这里要多减一个1。如果是\0,因为while循环,

指针的关系运算

请添加图片描述
请添加图片描述
请添加图片描述
要有所指
请添加图片描述
请添加图片描述
下面的小细节,其他写法也可以
请添加图片描述
请添加图片描述

请添加图片描述
请添加图片描述
这就厉害了
请添加图片描述
因为
请添加图片描述

5. 二级指针

请添加图片描述
取a的地址到指针变量pa中,就是那个16进制的,因为pa为指针变量,是指针变量就有自己地址,与a是不一样的。
请添加图片描述在第一个指针变量再取出地址,就是二级指针变量了

请添加图片描述
这里的 * 是指针变量的标志
请添加图片描述
这里的画圈是对于前面变量的类型
请添加图片描述
三级还是比较少见,了解即可
请添加图片描述
要知道解引用操作符的作用,直接对于前面。
请添加图片描述
看看这就直接对于a去了,最后打印10
请添加图片描述
从后面修改也是可以的,这是互通的。

6. 指针数组

请添加图片描述
请添加图片描述
其实我们前面学习的也是一样的
请添加图片描述
请添加图片描述
其实就是这样
请添加图片描述

下面我们使用一维数组,模拟一个二维数组
请添加图片描述
请添加图片描述

请添加图片描述
总体是比较简单明了的,学习就是慢慢迭代,前后链接起来就容易多了。

守得云开见月明

请添加图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/33854.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

内核的架构 --- 宏内核与微内核

宏内核 宏内核就是把进程管理代码、 内存管理代码、 设备管理代码、 文件管理代码、 各种设备驱动程序代码以及其 他功能模块的代码经过编译, 最后链接在一起, 形成一个大的可执行程序。 这个大程序里有实现支持这些功能的所有代码, 向用户应…

Spring Cloud Nacos 2021使用LoadBalancer做负载均衡

项目源码&#xff1a;https://download.csdn.net/download/weixin_42950079/87150709 Spring Cloud Nacos 2021 移除了 Ribbon&#xff0c;在Spring Cloud Commons 项目中添加了 Spring Cloud LoadBalancer 作为新的负载均衡器 <dependency><groupId>com.alibaba.…

html实现好看的导航主页(附源码)

文章目录1.设计来源1.1 主界面1.2 底部导航1.3 屏幕保护2.效果和源码2.1 动态效果2.2 源代码源码下载作者&#xff1a;xcLeigh 文章地址&#xff1a;https://blog.csdn.net/weixin_43151418/article/details/128028326 html实现好看的导航主页(附源码) html实现好看的导航主页&…

印度富士康的iPhone产能在扩产,对中国制造将产生深远影响

郑州富士康生产iPhone再次受到影响&#xff0c;这让业界想起当下在国内越来越多见的印度制造的iPhone14&#xff0c;业界猜测苹果和富士康将加快印度产能扩张的进程&#xff0c;推动印度制造的iPhone占比加速提升。目前苹果的三大代工厂中的纬创和富士康都已在印度设厂生产iPho…

关于我给dumi2.0提pr的完整记录

前言 博主最近一年时间在工作业余都在写开源组件库 concis &#xff0c;其中文档站点生成框架采取了 dumi&#xff0c;前几天不久dumi2.0正式发布&#xff0c;博主也是顺势而为直接把项目升级&#xff08;dumi1 -> dumi2&#xff09; 由于dumi2 的站点设计比原来好看太多了…

nios烧写到EPCS的问题处理

原理图如下图&#xff0c;板卡FPGA同时使用2片flash配置芯片&#xff0c;左侧M25P64即EPCS64。2片flash配置芯片使用相同的SPI总线。 在不使用nios的quartus工程中&#xff0c;使用jtag烧写jic的方式固化程序到EPCS64&#xff0c;始终正常。 近期使用含有nios的quartus工程&am…

生物素标记试剂:Alykne-Biotin-DADPS,2241685-22-1,DADPS-生物素-炔

【中文名称】DADPS-生物素-炔&#xff0c;炔基-生物素-二苯基硅烷 【英文名称】 DADPS Biotin Alykne&#xff0c;Alykne-Biotin-DADPS 【结 构 式】 【CAS号】2241685-22-1 【分子式】C42H62N4O9SSi 【分子量】827.12 【基团部分】Alykne基团 【纯度标准】95% 【包装规格】1g&…

小米手机用什么耳机音质好?发烧级音质蓝牙耳机推荐

小米品牌在我们日常生活中经常见到&#xff0c;蓝牙耳机作为现代人的必需品&#xff0c;使用人数一直都是递增的&#xff0c;市面上的蓝牙耳机品牌众多&#xff0c;但很多人不知道哪个牌子音质更好&#xff0c;作为一位耳机发烧友&#xff0c;近几天也是整理了几款音质表现出色…

MCE | mTOR 通路是如何调控自噬的

mTOR 是细胞生长和代谢的主要调节分子&#xff0c;可促进合成代谢过程&#xff0c;如核糖体的生物发生 (Ribosome biogenesis) 以及蛋白质、核苷酸、脂肪酸和脂质的合成&#xff0c;并抑制分解代谢过程&#xff0c;如自噬。mTOR 信号的失调与许多人类疾病有关&#xff0c;包括糖…

C++使用ffmpeg硬解码

转载&#xff1a;https://www.pudn.com/news/62bc096d405aad31f717648e.html 使用ffmpeg解码video模块&#xff0c;支持3种解码&#xff1a;cpu解码、amd64平台的cuda解码和NX平台的Nvmpi解码封装库只依赖ffmpeg&#xff0c;测试程序中用到了OpenCV&#xff0c;可用于将帧送往…

从 Uber 数据泄露事件我们可以学到什么?

Uber 数据泄露始于一名黑客从暗网市场购买属于一名 Uber 员工的被盗凭证。最初尝试使用这些凭据连接到 Uber 的网络失败&#xff0c;因为该帐户受 MFA 保护。为了克服这一安全障碍&#xff0c;黑客通过 What’s App 联系了 Uber 员工&#xff0c;并假装是 Uber 的安全人员&…

基于JAVA的新闻文章发布管理系统,可以用来参考学习【数据库设计、源码、开题报告】

数据库脚本下载地址&#xff1a; https://download.csdn.net/download/itrjxxs_com/86427648 主要使用技术 SpringSpringMVCMybatisBootstrapJqueryMysql 功能介绍 该系统分为前后台管理&#xff1a; 后台管理主要四个模块&#xff1a; 新闻管理&#xff1a;新闻发布实现类…

嵌入式工程师更新装备,最新的国产全志A40i、Xilinx ZYNQ开发板分享来了

各位工程师的硬件装备库还没更新&#xff1f; 以下国产比例100%&#xff0b;工业级 国产全志A40i、Xilinx ZYNQ开发板均有&#xff01; 限定50套 更多产品资料&#xff0c;案例详细说明&#xff0c; 点击链接或微信扫下方二维码下载&#xff01;https://site.tronlong.com/p…

功能点估算方法,如何让估算偏差更小?

1、何为软件功能点 ​ ​软件功能点是站在业务角度对软件规模的一种度量&#xff0c;功能点的多少代表软件规模的大小&#xff0c;这里说的功能点是标准的功能点&#xff0c;按照标准的估算方法&#xff0c;每个人对特定需求估算出的功能点数是一致的。 功能点估算方法&…

基于Java+Swing+Mysql企业人事管理系统

基于JavaSwingMysql企业人事管理系统一、系统介绍二、功能展示1.登录、注册2.主页面3.添加员工信息4.修改员工信息5、考勤管理6、工资管理三、数据库设计四、其他系统实现一、系统介绍 企业员工信息管理系统主要用于实现公司的员工相关信息管理&#xff0c;基本功能包括&#…

最新最全面的Spring详解(六)——Spring-Mybatis整合

前言 本文为Spring-Mybatis整合相关内容介绍&#xff0c;MyBatis-Spring 可以帮助我们将 MyBatis 代码无缝地整合到 Spring 中。 使用这个类库中的类, Spring 将会加载必要的 MyBatis 工厂类和 session 类。 这个类库也提供一个简单的方式来注入 MyBatis 数据映射器和 SqlSessi…

用Python构建区块链

区块链 区块链是在计算机网络的节点之间共享数据的分类账(分布式数据库)。作为数据库&#xff0c;区块链以电子格式储存信息。区块链的创新之处在于它保证了数据记录的安全性和真实性&#xff0c;可信性&#xff08;不需要没有可信任的第三方&#xff09;。 区块链和典型数据…

无线数据采集器

背景介绍 近年来&#xff0c;软硬件技术的革新带动了物联网行业的发展&#xff0c;趋使其应用场景不断深化&#xff0c;从工业设备故障诊断到共享经济&#xff0c;再到新能源汽车。调研发现&#xff0c;物联网的核心框架为&#xff1a;通过传感器感知物理世界的状态&#xff0c…

尚医通-手机验证码登录与gateway拦截实现

需求分析 1&#xff0c;登录采取弹出层的形式 2&#xff0c;登录方式&#xff1a; &#xff08;1&#xff09;手机号码手机验证码 &#xff08;2&#xff09;微信扫描 3&#xff0c;无注册界面&#xff0c;第一次登录根据手机号判断系统是否存在&#xff0c;如果不存在则自…

怎么裁剪视频时长?手把手教你裁剪

现在的网络非常方便&#xff0c;我们可以很轻松的在网上找到各种视频进行网课的学习。不过有些网课重点的内容可能不多而且又分散&#xff0c;我们很难做到高效的学习。其实我们可以通过视频裁剪&#xff0c;将需要的视频内容裁剪下来&#xff0c;这样子就方便我们学习啦。那你…