C 语言指针核心知识点梳理
C语言指针知识点总结目录一、指针功能二、基础概念1. 地址2. 指针3. 指针变量三、指针两大运算符1. 取地址运算符2. * 取值解引用运算符四、指针变量定义野指针空指针指针类型含义五、指针两种操作含义六、指针算术运算七、函数参数值传递与地址传递1. 值传递2. 地址传递指针传参八、一维数组与指针关系数组名特性一维数组作为函数形参的写法三种等价形式一、指针功能让程序代码更加简洁高效能够直接访问内存空间二、基础概念1. 地址计算机为区分内存中不同存储空间对内存进行编号存储空间对应的编号就是地址。内存按照字节进行编址。寻址范围0x0000000000000000 ~ 0xFFFFFFFFFFFFFFFF2. 指针指针本质上可以理解为地址指针带有类型属性类型决定了它指向空间占用字节大小。3. 指针变量专门用来存放指针地址的变量称为指针变量日常也会直接简称为指针。三、指针两大运算符1. 取地址运算符仅左值支持操作常量、表达式等右值无法进行取地址。变量运算结果该变量在内存中存储空间的首地址。类型转换规则类型升级例如int→int *。示例intnum0;num;// 获取变量num内存首地址2. * 取值解引用运算符只有指针类型的数据可以执行*操作普通变量不能直接解引用。*指针运算结果从指针保存的首地址开始读取对应类型长度的数据。类型转换规则类型降级例如int *→int。若*指针放在等号左侧充当左值代表向指针指向的内存空间写入数据。四、指针变量定义语法格式数据类型 *变量名;int*p;char*p;float*p;double*p;int*p,*q;在64位系统中所有指针变量统一占用8字节和指针指向的数据类型无关。野指针未经初始化、或者指向已经被释放内存空间的指针。规范禁止使用未初始化的野指针。空指针指向内存地址0x0位置的指针使用NULL表示。int*pNULL;0x0地址对应的内存空间为只读禁止对空指针解引用*p否则程序直接崩溃。指针类型含义指针的数据类型决定指针指向何种类型内存空间int *p指向int类型空间char *p指向char类型空间float *p指向float类型空间double *p指向double类型空间五、指针两种操作含义假设有指针变量pp代表操作指针变量本身修改它可以改变指针指向的地址。*p代表操作指针指向的内存空间修改它只会修改地址内存储的值不会改变指针指向。示例区分inta100;intb200;int*pa;int*qb;pb;// 修改指针p本身p指向变量bpq;// 修改指针p本身让p和q指向同一空间*pb;// 修改p指向空间内的数据指针指向不变*p*q;// 修改p指向空间内的数据指针指向不变六、指针算术运算支持、-、、--p向内存高地址偏移偏移长度 指针指向数据类型的字节大小p--向内存低地址偏移偏移长度 指针指向数据类型的字节大小*p等价于*p , p先取值再移动指针两个同类型指针可以相减计算得到两个地址之间相隔多少个对应类型元素。注意指针不支持相加运算七、函数参数值传递与地址传递1. 值传递实参将数值副本传递给形参形参发生修改不会影响外部实参。适用场景函数只需要读取外部变量数值不需要修改变量。2. 地址传递指针传参实参把变量地址传递给指针形参函数内通过解引用可以直接修改外部实参的值。适用场景函数内部需要修改函数外部变量借助地址传递实现一个函数返回多个结果八、一维数组与指针关系inta[5]{1,2,3,4,5};int*pNULL;pa[0];pa;// 数组名a等价于数组首元素地址等价关系a[n] *(an) *(pn) p[n]数组名特性数组名是指向数组首元素的指针常量不能被直接赋值修改。绝大多数场景数组名可看作对应类型指针如int数组名看作int *两种例外sizeof(数组名)此时数组名代表整个数组不视作指针数组名取出整个数组的地址不视作普通元素指针C语言中[]本质是指针语法糖p[n]等价于*(pn)。一维数组作为函数形参的写法三种等价形式intfun(intarray[],intlen);intfun(intarray[5]);intfun(int*parray,intlen);数组传入函数后会隐式转化为指针函数内部无法通过sizeof获取数组总大小必须额外传入数组长度。

相关新闻

雷克萨斯RC F深度解析:V8自吸发动机的坚守与驾驶体验

雷克萨斯RC F深度解析:V8自吸发动机的坚守与驾驶体验

如果你是一位汽车爱好者,或者对高性能日系跑车有所关注,那么“东瀛大V8”这个名号你一定不陌生。它特指那些搭载了V8发动机、性能强悍的日本高性能车型。而雷克萨斯RC F,正是这一阵营中极具代表性,却又常常被市场低估的一款“西装…

2026/10/14 17:57:22 阅读更多 →
Nvidia、Meta、Microsoft为何力挺开放模型?深度解析三大科技巨头的开源AI战略

Nvidia、Meta、Microsoft为何力挺开放模型?深度解析三大科技巨头的开源AI战略

开源浪潮下的AI格局重塑2024年以来,全球AI产业呈现出前所未有的开放态势。Nvidia、Meta、Microsoft三大科技巨头纷纷加大对开源模型的支持力度,这一战略转向背后蕴含着深刻的商业考量与技术逻辑。开源模型不仅改变了AI技术的分发方式,更重塑了…

2026/10/13 7:12:17 阅读更多 →
LangSmith Polly:实现LLM应用本地化可观测性的关键技术解析

LangSmith Polly:实现LLM应用本地化可观测性的关键技术解析

1. 从LangSmith的“私有化”到Polly的“无处不在”:一次关键的技术范式转移如果你在过去一年里深度参与过LLM应用开发,那么LangSmith这个名字对你来说一定不陌生。它几乎是LangChain生态中事实上的“黄金标准”调试与监控平台。然而,一个长期…

2026/10/14 3:52:39 阅读更多 →

最新新闻

ponytail:把终端命令变成可复用技能的高效自动化工具

ponytail:把终端命令变成可复用技能的高效自动化工具

ponytail。第一次在同事的终端里看到这个词,我还以为是某个桌面对弈壁纸的花名。直到他现场敲了两行命令,把原本我得翻半天历史记录、拼接七八条命令才能完成的日志分析,变成了问候式的一行pt log --path access.log --top 5,我才…

2026/10/15 13:46:16 阅读更多 →
TileLang是什么?当前不存在的领域专用语言解析

TileLang是什么?当前不存在的领域专用语言解析

我无法根据当前输入生成符合要求的博文。原因如下:项目标题“tilelang”本身缺乏明确语义指向:它既不是广为人知的编程语言(如 Python、Rust)、也不是主流开源项目(如 Zig、Vlang、MoonScript)、更非已建立…

2026/10/15 13:46:16 阅读更多 →
Tilelang不存在:编程语言术语辨伪与技术查证方法

Tilelang不存在:编程语言术语辨伪与技术查证方法

我无法生成关于“tilelang”的博文内容。原因如下:根据当前公开可查的权威技术资料、主流编程语言官网(如Python、Rust、Haskell、OCaml等)、知名开源平台(GitHub、GitLab)、学术数据库(arXiv、ACM DL&…

2026/10/15 13:46:16 阅读更多 →
机器人动力学约束路径规划:从几何路径到物理可行轨迹

机器人动力学约束路径规划:从几何路径到物理可行轨迹

1. 为什么“能走通”的路径,在真实机器人上反而会翻车?“移动机器人运动规划(四)——动力学约束下的路径规划”,这个标题里藏着一个绝大多数初学者甚至不少工程实践者都曾踩过的深坑:把几何路径规划当成运动…

2026/10/15 13:46:16 阅读更多 →
双芯光纤SPR传感技术及COMSOL仿真优化

双芯光纤SPR传感技术及COMSOL仿真优化

1. 项目背景与核心价值双芯光纤表面等离子体共振(SPR)传感技术是近年来光纤传感领域的重要突破方向。这种将两个纤芯集成在单根光纤中的特殊结构,相比传统单芯光纤SPR传感器具有更高的灵敏度和更好的稳定性。我在实际研究中发现,当…

2026/10/15 13:46:16 阅读更多 →
第一次做 GEO 要几步?从注册到第一篇内容被收录的启动路径

第一次做 GEO 要几步?从注册到第一篇内容被收录的启动路径

结论先放这儿:6 步。注册 → 搭知识库 → 生成用户问题 → 攒标题 → 补正文 → 跑监测。前 4 步搭台子,第 5 步出第一篇成稿,第 6 步验证它有没有被 AI 读到。先说这篇是写给谁的 如果你刚注册完 GEOchat,打开后台看到「知识库、…

2026/10/15 13:45:15 阅读更多 →

日新闻

Docker Compose 容器化部署 ChirpStack LoRaWAN 网络服务器实战

Docker Compose 容器化部署 ChirpStack LoRaWAN 网络服务器实战

1. 为什么选择容器化方式部署 LoRa 网络服务LoRa 物联网项目落地时,网络服务器是整个链路的核心枢纽。它负责接收网关上报的数据包、完成去重与解密、再把有效载荷分发给上层应用。早期大家习惯把网络服务器直接装在物理机上,依赖一堆系统库和特定版本的…

2026/10/15 0:00:46 阅读更多 →
共享LLM服务下的跨模型自动扩缩容:Kubernetes实战与避坑指南

共享LLM服务下的跨模型自动扩缩容:Kubernetes实战与避坑指南

1. 共享推理服务里,扩缩容到底难在哪做过大模型推理服务部署的人,大概都经历过这样的场景:一个团队共用一套推理集群,A 业务跑的是 7B 的小模型,B 业务跑的是 72B 的大模型,C 业务白天流量高、晚上几乎归零…

2026/10/15 0:00:46 阅读更多 →
Systemd 启动阶段根文件系统只读之谜:fstab 与 remount-fs 服务深度解析

Systemd 启动阶段根文件系统只读之谜:fstab 与 remount-fs 服务深度解析

1. 引子:一次内核恐慌引发的追查先从一个真实场景说起。某次我给一台老旧的嵌入式设备折腾系统裁减,为了把启动时间压进两秒以内,我手贱地把一串自认为“没用”的 systemd 服务给 disable 了,其中就包括systemd-remount-fs.servic…

2026/10/15 0:00:46 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/14 3:30:28 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/14 16:30:29 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/14 3:29:58 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/15 0:14:36 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/14 22:45:47 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/15 9:49:14 阅读更多 →