指针讲解(三羊开泰)

华为OD机试真题 2026.11.4. 新系统 【河流水系流量评估】 华为OD机试真题 新系统【河流水系流量评估】,提供C语言、Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解,以及在线OJ模拟做题。华为OD机试真题 【河流水系流量评估】多语言题解。 阅读详情

目录

总

字符指针变量

二级指针

数组指针变量和指针数组变量

函数指针变量


总

同一个地点,不同的时间,时隔一坤钟,我又来了。还是那句话:那年我双手插兜,不知道什么叫对手。错了,前面的是这个的基础建议先看前面两章。

这节课我们讲一讲:二级指针,指针数组变量,数组指针变量,三级指针,n级指针。字符指针变量,函数指针变量。8个好好看好好学。这个学会真的,我觉得你就很牛逼了

字符指针变量

我们在前面说了一个叫char*的东西记不记得,不记得也没关系,重开吧(从第一个开始看)记得的看这里,这个就是我们说的字符指针。他有什么用,他就访问一个字节的内存嘛。

一般我们的使用方法是

对不对,但是既然我又讲了,那他就是有别的用法,先看例题

啊……,这个是什么东西。呵呵这个就是pstr的另一种使用方法,他也可以指向字符串。

但是他指向的不是整个字符串啊,他只是指向了这个字符串的第一个字符(也就是h)是不是很简单。好,我们来一个难的例题

先别向下看,想好了再看

想好了吧

怎么样呢,有没有想到。现在我们来讲解一下。电脑会把常量字符串储存在一个单独的空间,当几个指针指向同一个字符串的时候,他们实际指向的是同一个地址,但是不同的数组就会开辟不同的空间。因此,就是结论了。

理解了吗,理解不了也没关系,因为这个是《剑指offer》上的一道面试题。理解不了,就不要面这个试了啊,说难听一点,就是必须理解,背下来,面试可能会用。

给大家讲了一个简单的知识,现在我们开始我们的重点(难点)

二级指针

前面我们学了指针,其实这个也可以叫一级指针,再来理解指针是指向什么的,噢,变量。(打过游戏的小伙伴都知道,装备是可以升级的,但是这个不叫升级叫进阶,科普一下升级就是单纯的把属性升级一下,战力微微提升,但是进阶就不一样了,进阶一般可以额外再加一个属性,战力大幅度提升,对不对,理解了吧,理解不了也没关系因为没什么用)我们本来有一个一级的指针是指向变量的,我们一直用他,把经验条集满了以后,他进阶了,变为了二级指针,你们猜一猜,他觉醒了什么技能,没觉醒,对就是没有觉醒。他变为了就比如一个武器可以打小怪的,进阶了一下变为了可以打玩家了。(一个可以打玩家的武器,是不是算神器)比如你在打游戏,你拿了一把极道帝兵,这个还是只能刷副本的,但是进阶了,这个武器可以打你了。(在计算机中,你拿武器是一级指针,变量是小怪,你打小怪就是一级指针指向变量,武器进阶了就是二级指针,打你,就是二级指针指向一级指针)而二级指针的值就是一级指针的地址

n级指针就是这样进阶下去。

数组指针变量和指针数组变量

数组指针变量,哈哈又有数组又有指针,什么东西啊。就像小日子(过的不错的日本选手),这句话的主题的小,还是日子。肯定是日子啊,不过他们确实小。这样理解数组指针是不是,肯定是指针啊,不过他们确实像数组。对不对。

是指针,又像数组,发挥想象力,是什么东西,噢,一个指针指向数组,不就是指针又像数组了。破案了。

我们现在来写这样变量的类型(都假设是int),首先,他是一个指针,一级指针怎么写int *a

就是了,一个数组怎么写 int a【10】嘛。假如你是c语言元老级人物,你会怎么设计,还不是通俗易懂的行了,最简单的就是直接和一起,但是怎么和,我们想类型是不是不会变,但是名字变,那就以名字为核来和(你问我为什么以名字来和,我又不是元老,又不是我说了算),看这个好像可以和,指针好和,他的名字就一边,那数组怎么和左边有,右边也有,但是int是不是在指针变量出现了,嘿嘿,刚好int不要就可以了变为int*a【10】,啊这个a是和哪个先结合,我们就去看结合顺序表,发现先和【10】结合,那不就变为数组了,那就加()啊,int (*a)【10】就可以了。这个就是类型了。额,是一个指针,指向了一个数组每个元素是int。

噢 int (*a)【10】一个一个理解,就是这是一个指针,指向了一个数组,而这个数组的每一个元素是int。按这个我们就可以写了:我们要一个指向数组的指针,而数组有20个元素每一个元素的类型是就是char(*a)【10】,现在我们来一个难的:我们要一个指向数组的指针,但是数组的每一个元素是指针数组。这个你们可以先看看,后面我会专门出一章讲这种。

我们刚才类型名称推到了怎么写类型,我们来反推,如果a先和【10】结合了,就变为数组了,

那int*a【10】是什么,你想a【10】用了还有什么没有,是不是int * ,这个是什么不就是指针类型吗,肯定是数组,又像指针,你按上面的方法叫一个名字。对,指针数组,指针数组,就是一个数组,数组有多个元素,每个元素是int。

这两个可能有点混乱,但是记住名字有两边有*,【】【】的优先级的更高的,因此,名字会先和【】结合,这个就是一个数组,类型名字后面的二个子就是数组,如果有括号的话(*a)这个就是指针,类型名字后面的二个子就是指针。现在理解了没,理解了也没关系,后面出一个类型都认识,但是还是不知道的题,哈哈哈,这样懂了和没懂就是一样都算没懂了。

函数指针变量

是不是有人就啊……了,函数还有指针

我们先看

我们可以看到一个函数还是有地址的,而且函数名称就是&函数名。所以函数还是有指针的,那函数有地址,我们要用的话,是不是就要用一个变量来储存,那这个变量怎么写呢。

我们看函数有上面特征int add (int l ,int j)噢,有一个int,然后一个函数名,后面还有二个变量,额……中两个变量就是函数要传的参数,

那么我们怎么用函数指针变量表示呢,我们表示的话,特征一定要有,

int (*padd)(int,int)是不是特征都有,我们自己名一个名,在写一个*表示是一个指针就行了。这个就是函数指针,而这个函数怎么用呢,

就是这样用。有人就无语了。你这个不是脱裤子放屁吗,我在h那直接用add不就行了吗,非要这样多此一举。对,如果我来我也会这样用,但是是在这个情况下。后面我们在说另一种情况,

我们先插播一个小广告。

嘿嘿,没接到。我们先插播一个小知识,叫做函数指针数组,对就是这个,名字都很长。看着我也烦,但是他还是有用的要学。按上面是套路,这是一个数组,每一个元素是函数指针。对不对,不理解,再看看前面的。现在我们就可以看另一种情况了。假如我们要实现一个计算器,我们是不是先分装四个函数,+,-,*,/。在分别实现,这个太简单了,我就不写了,如果我们没有学函数指针数组的时候是不是就这样写是不是很长,电脑读的不累,我们自己读的累啊。

但是我们学了函数指针数组就可以把这个简化了

是不是特别好,虽然没有减多少,但是还是减少了吧,现在我们写的计算器,他的计算方法不多,但是假如我们后面加上,%,&,《,》,……加了个百八十个是不是就有很大的区别了吗。学知识就是这样就算没简单多少,我们还是要自我安慰,后面就可以减很多了。

从CTF到实战:Frida Hook无导出SO函数的3种特殊姿势 本文深入探讨了在移动安全逆向工程中,如何利用Frida Hook无导出SO函数的三种高级技巧:字符串引用定位法、调用栈回溯法和内存特征码扫描。针对安卓So层加固和混淆场景,文章结合CTF赛题与实战案例,详细解析了每种方法的原理、实现步骤与适用场景,为安全研究人员提供了从理论到实践的完整解决方案。 阅读详情

相关推荐

利用Python脚本在ADS2024 Update2中动态绘制与验证LPDDR5眼图模板

本文详细介绍了如何在ADS2024 Update2中,利用Python脚本动态绘制与验证LPDDR5眼图模板。通过调用DDS Python接口,工程师可在仿真后无需重新运行,即可灵活添加、修改矩形或六边形眼图模板,并实现批量自动化处理,从而极大提升高速信号(如LPDDR5)的调试与验证效率。

raspberrypi5的博客 603

指针讲解(四季发财)

是不是可以,但是有没有人想,既然我传了一个数组指针,那为什么,在print函数里面,可以用arr【i】【k】,这个又是前面说的,arr【i】这个计算机会自动看为arr+i,而这个怎么算呢(这个有问题吗,有问题就重开,这个就要从指针的第一个开始了)arr的大小的多少,数组指针嘛,大小接收一个数组嘛,那加几就跳过几个数组嘛,简单。&arr是第一行的地址是上面类型,我们上面学了哦,想出来了吗,这个第一行的地址,噢,是一个指针,但是第一行不是有几个元素吗,一个指针又指向了几个元素,不就是数字指针吗。

star050913的博客 661

如何利用GMS构建地下水数值模拟模型?

第一步:点图中三维网格的图标然后点Grid→Create Grid这个界面是用于创建一个有限差分网格的设置窗口。它允许你定义网格在三维空间中的范围、分辨率以及其他相关属性。这个界面提供了一个直观的方式来定义一个三维的有限差分网格,你需要指定每个维度上的范围、划分的单元格数量,以及一些控制单元格大小分布和网格方向的参数。这个网格通常会被用于数值模拟,例如地下水流模拟。在点击 "OK" 之前,请务必仔细检查所有参数是否符合你的建模需求。1. X-Dimension (X 轴维度)2. Y-Dimension (

weixin_44259522的博客 2093

Spring AI + GPT-5.5 + Ollama 配置教程:Base URL、超时与流式调用

由于不同 Spring AI、Spring Boot 小版本之间仍可能存在差异,创建项目时应检查 Spring Initializr、Spring AI BOM 和官方兼容矩阵,不要直接复制旧教程中的 Starter 名称和版本号。多人项目最好隔离不同客户端,并在脱敏前提下记录最终 URL、状态码、请求耗时、请求 ID 和模型 ID。Spring AI 接入模型 API,至少要同时确认 Starter、Base URL、请求路径、API Key、模型 ID、连接超时、读取超时和流式客户端这 8 项。

2601_95893075的博客 225

sentinel滑动时间窗口算法学习

滑动时间窗口 先不说sentinel的算法实现,先说什么是滑动时间窗口, 我们在进行限流的时候,比如通过QPS进行限流,那假如我们以秒为单位,举个例子: 我设置了限流规则,qps是10 如果不使用滑动窗口算法,在统计qps的时候,就有可能会有问题,比如: 在0 - 500ms中的请求数是0,但是在500ms - 1000 ms的请求数是10;在1000ms - 1500ms 之间又进来了5个请求,此时只判断了1000ms - 2000 ms之间的请求数 因为没有把1S进行拆分多个窗口,所以在1000ms之后

小小少年的博客 3979

微机原理课程设计-模拟十字路口交通信号灯

一、设计任务描述 1.1设计目的 通过课程设计使学生更进一步掌握微机原理及应用课程的有关知识,提高应用微机解决问题的能力,加深对微机应用的理解。通过查阅资料,结合所学知识进行软、硬件的设计,使学生初步掌握应用微机解决问题的步骤及方法。为以后学生结合专业从事微机应用设计奠定基础。 1.2 设计要求 控制LED灯,按照十字路口红绿灯的原理亮灭显示: (1) 东西方向车辆放行x秒...

Learning_is_endless的博客 2万+

【JVM】对象内存布局

HotSpot JVM 中,Java 对象内存布局由对象头(12字节,含Mark Word与压缩Klass Pointer)、实例数据及对齐填充构成,总大小为8字节倍数。对象头支持锁状态动态复用,指针压缩使引用仅4字节,但堆超32GB时失效。实例字段按类型优先级重排序以减少间隙,最小对象大小为16字节。通过JOL工具可精准验证布局,理解锁机制、GC、伪共享等底层行为。

2301_79732484的博客 149

人脸关键点定义汇总

前几天看一份代码临时需要找49个人脸关键点位置定义的图片发现怎么百度都搜不到,最后幸好谷歌可以使用了就用谷歌搜到了。所以在这里汇总一下我所知道的人脸关键点的定义和相关的一点东西,以备不时之需。 68个关键点 最常用的工具是Dlib,网址:http://dlib.net/ dlib的68个特征点检测算法是ERT算法【1】 使用dlib检测68个特征点的python示例见:http://dlib.n...

程序媛 7642

V8 机制、手写核心函数与 TypeScript 类型体操

或固定初始化(如数组先定长、对象先给全字段)保持类型与形状稳定;这些都比"换框架"更基础。只能处理纯数据(丢函数、Date、RegExp、循环引用报错)。生产级深拷贝要处理:原始值短路、循环引用、V8(Chrome / Node 的 JS 引擎)不是"解释一行跑一行"那么简单,它用。图:V8 执行流程——解释执行 + 热点优化,优化失败会 Deopt 回退。JS 内存自动管理,但"自动"不等于"不会漏"。是"固定间隔最多执行一次"。手写 Promise 是"懂异步"的试金石。是"停下后才执行最后一次",

qq_38468358的博客 330

YOLO26-seg分割优化:FPN涨点&轻量化篇 |多级特征融合金字塔(HS-FPN),助力小目标检测

​​​​​摘要:本研究对Ultralytics YOLO26进行了全面分析,重点阐述了其关键架构改进及其在实时边缘目标检测中的性能基准测试。YOLO26于2025年9月发布,是YOLO系列最新、最先进的成员,专为在边缘及低功耗设备上实现高效、精确且易于部署的目标而构建。本文依次详述了YOLO26的架构创新,包括:移除了分布焦点损失(DFL);采用端到端的无NMS推理;集成了渐进损失(ProgLoss)与小目标感知标签分配(STAL);以及引入了用于稳定收敛的MuSGD优化器。

①答疑群聊服务;②YOLO大模型知识问答系统;③计算机视觉论文生成智能体; 280

【3天快速入门WPF】8-数据绑定基础

以下是一个简单的 WPF 数据绑定示例,使用两个TextBox控件分别表示Name和Age来进行进行数据绑定试验。运行程序后,你会看到初始界面中TextBox 中显示初始名字 “张三”,TextBox 中显示初始年龄 “25”。在 XAML 中创建一个简单的界面,包含一个 TextBox 用于输入名字,一个 TextBox 用于显示年龄。当你在 TextBox 中修改名字时,Person 对象的 Name 属性会被自动更新,反之亦然。它的主要作用是为控件及其子控件提供一个默认的数据源,用于数据绑定。

Zy100Papa的博客 969

Spring Boot 数据源与 MyBatis(-Plus) 自定义配置详解

本文详解 Spring Boot 中单数据源环境下 HikariCP 与 MyBatis-Plus 的自定义配置。通过手动声明 SqlSessionFactory,实现下划线转驼峰、日志输出、一级缓存策略等精细化控制。结合 HikariCP 核心参数调优(如最大连接数、连接生命周期),确保高性能与稳定性。适用于仅需访问单一数据库的场景,避免多数据源复杂性,兼顾性能与可维护性。

BADAO_LIUMANG_QIZHI的博客 196

SAP-ABAP:SAP创建CDS视图(SQL语句创建)实例详解

通过Eclipse和ADT创建CDS视图是SAP开发中的一项重要技能。CDS视图不仅简化了数据建模,还提供了高性能和灵活性。掌握CDS视图的开发和使用,可以帮助你更好地支持SAP S/4HANA和Fiori应用的开发。

baidu_35680696的博客 1823

Java EE 进阶:8.MyBatis 操作数据库(入门)(第一弹)

Java EE 进阶:8.MyBatis 操作数据库(入门)(第一弹)

要努力去发光,而不是被照亮~ 117

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

LeetCode Hot 100 二叉树专题(二)3 题(Java)

本篇文章共 3 题:543. 二叉树的直径、102. 二叉树的层序遍历、108. 将有序数组转换为二叉搜索树。 每道题都统一按「① 题目分析 & 解题思路 → ② 常见解法(附代码)及讲解 → ③ 知识点总结」的顺序组织;代码使用 Java 编写,节点定义沿用 LeetCode 默认的 TreeNode。

2401_88612756的博客 365

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

Decorator

TaskDecorator 是异步场景下"跨线程传递上下文"的标准方案,主要用于传递 MDC、用户信息、数据源路由等上下文数据,核心价值是让异步任务的日志链路不中断、业务上下文不丢失。TaskDecorator 是 Spring 提供的一个钩子接口,用于在异步任务执行前对 Runnable 进行包装,常用于跨线程传递上下文。如果你在项目中遇到具体的异步上下文传递问题,可以把代码贴出来,我帮你给出最合适的 Decorator 方案 👍。✅ 核心能力:在线程切换时,把"父线程的上下文"搬到"子线程"

wlwork66的博客 104

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

JDK 下载安装:装完 Java 提示「不是内部或外部命令」?环境变量没配

JDK 是写 Java 程序必须装的东西。它包含运行 Java 的虚拟机(JRE)和编译 Java 的编译器(javac)——装了它,能跑、.java文件能编译成可执行程序。免费,学习和小规模生产都不花钱。

科小怪的博客 626

数据库乐观锁深度解析:MySQL、PostgreSQL 实战 + Spring Boot 集成指南

Oracle 提供了ORA_ROWSCN伪列(System Change Number),记录最后修改行的 SCN,类似 PostgreSQL 的xmin。实践中通常仍使用 version 字段方案,逻辑与 MySQL 完全相同。-- Oracle:通过 ORA_ROWSCN 实现乐观锁-- 更新时比对 SCN// 自定义注解// AOP 切面@Aspect@Component@Slf4jtry {

yjc_1111的专栏 399

C++ 多态详解:作用、原理与实战用法

多态是C++面向对象的核心特性,通过虚函数实现运行期动态绑定,使同一接口在不同对象上表现出不同行为。其核心作用包括统一接口、提升可扩展性、降低耦合、支持运行时分派与批量处理。实现依赖虚函数表(vtable)和虚指针(vptr),需注意虚析构函数、对象切片等陷阱。相比编译期多态(模板),运行期多态灵活性高但有调用开销。合理结合两者,可兼顾代码的灵活性与性能,是构建可扩展、低耦合系统的关键。

2402_85743155的博客 377

java框架大全

java框架大全

qq_39326137的博客 183

Java 多态 学习笔记

多态是面向对象编程的重要特性,指同一操作作用于不同对象时产生不同行为。其核心在于“父类引用指向子类对象”,结合方法重写实现运行时动态绑定。多态使代码更灵活、可扩展,如用Person p = new Student();统一处理各类人员注册,无需修改调用逻辑。但多态无法直接调用子类特有方法,需通过instanceof判断并强制转换。编译时看左边(类型),运行时看右边(实际对象),实现解耦与维护便利。

AA_AA114514的博客 354

SecureRandom做随机源,这个Java随机字符串工具类有3个方法

本文分享一款JDK17环境下的Java随机字符串工具类,内置3个开箱即用的方法,全部采用SecureRandom加密安全随机源,不存在弱随机、可预测、取模偏差等问题。工具类支持默认62字符集随机串、纯数字随机串、自定义字符集随机串三种生成模式,支持Unicode码点级别的字符集处理,兼容Emoji等增补字符,边界处理严格,异常信息明确,适合验证码、邀请码、盐值、随机口令、短链码等场景,源码可直接复制使用。

Java后端 | AI智能体应用实战派 | 电脑技能行家 295

Java实现批量线段相交检测(跨积判定+扫描线优化与踩坑复盘)

【代码】Java实现批量线段相交检测(跨积判定+扫描线优化与踩坑复盘)

m0_64476639的博客 319

ubuntu安装hadoop系统

本文详细介绍了基于VMware克隆虚拟机搭建三节点Hadoop分布式集群的全过程:使用同一Ubuntu镜像克隆出master、worker1、worker2三台虚拟机,依次配置主机名、固定IP(如192.168.82.10/11/12)、SSH服务及免密登录,确保节点间网络互通。随后安装Java,下载配置Hadoop并分发至各节点,最终初始化启动集群,验证其存储与计算功能,实现高效的大数据环境部署。

qq_43592674的博客 325

Agent 状态栏在上下文中的具体位置

Agent状态栏以user角色消息形式追加至上下文末尾,而非修改system消息,避免破坏KVCache。此举仅为API技术实现,内容由框架自动生成,非真实用户输入,通过<agent_status>标签标识,确保模型获取最新状态且不影响缓存。该设计遵循“动态信息追加、静态信息固定”原则,实现高效、低延迟的状态传递。

lj1109053360的专栏 72

Spring事务和事务传播机制

3. 可重复读(REPEATABLE READ): 事务不会读到其他事务对已有数据的修改, 即使其他事务已提交. 也就可以确保同⼀事务多次查询的结果⼀致, 但是其他事务新插⼊的数据, 是可以感知到的. 这也就引发了幻读问题. 可重复读, 是 MySQL 的默认事务隔离级别.p1事务可以认为是⽗事务, 嵌套事务是⼦事务. ⽗事务出现异常, ⼦事务也会回滚, ⼦事务出现异常, 如果不进⾏处理, 也会导致⽗事务回滚.

txxzjmzlh的博客 204
上一篇: 指针讲解(再提一壶)
下一篇: 指针讲解(四季发财)
star050913
博客等级 码龄3年 277粉丝 33原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值