day11:C语言指针详解:从概念到应用
2.7 指针1. 指针功能使用指针可以使程序更加简洁高效。2. 概念2.1 地址为了区分内存中不同的空间计算机对内存空间进行编址这个空间的编号称为该空间的地址。内存空间按字节编址编址范围可以被寻址的范围0x0000000000000000 - 0xFFFFFFFFFFFFFFFF2.2 指针指针可以理解为是地址地址也可以理解为是指针。指针有类型且有指向空间大小的含义2.3 指针变量用来存放指针的变量称为指针变量。使用指针变量的值等价于使用某个指针所以也会将指针变量简称为指针。3. 指针相关的两个运算符3.1 取地址运算符只有左值能够完成操作常量和表达式不能执行操作连接的表达式一定有值值为该变量在内存中存放的空间的首地址连接的表达式一定有类型类型具有升级的效果int → int *3.2 * 取值运算符只有指针类型能够*操作普通变量无法执行*操作*连接的表达式一定有值值为指针指向的空间以首地址开始指向数据类型大小个字节的数据的值*连接的表达式类型类型具有降级的效果int * → int*连接的表达式作为左值将右值放入指针指向的空间4. 指针变量定义数据类型 *变量名; int *p; char *p; float *p; double *p; int *p, *q;4.1 指针变量大小所有的指针变量均占8个字节与其指针类型无关。4.2 野指针未经初始化的指针或指向已经被释放空间的指针不要使用。int num 0; num; // 获得num在内存空间中的首地址4.3 空指针指向内存地址为0x0空间的指针。0x0地址空间是只读的所以对空指针取*会导致程序崩溃。int *p NULL;4.4 指针类型int *p; // 指针指向int类型的空间 char *p; // 指针指向char类型的空间 float *p; // 指针指向float类型的空间 double *p; // 指针指向double类型的空间4.5 指针含义指针变量本身p操作指针变量本身指针指向的空间*p操作指针指向的空间4.6 指针的算术运算向内存高地址偏移指向数据类型大小个字节空间--向内存低地址偏移指向数据类型大小个字节空间两个指针相减获得两个地址之间差了多少个数据类型对应的元素4.7 指针操作对指针变量p本身赋值可以修改指针的指向对指针变量p取*赋值不修改指针的指向而是利用指针修改指向空间中的值int a 100; int b 200; int *p a; int *q b; // 修改指针指向 p b; // 方式1 p q; // 方式2 // 修改指针指向空间的值 *p b; // 方式3 *p *q; // 方式4注意*p *p, p5. 指针作为函数参数5.1 值传递实参将值传递给形参形参改变不会影响实参函数体内想使用函数体外部变量值的时候使用值传递5.2 地址传递实参地址传递给形参形参是实参的指针可以利用形参修改实参的值函数体内想修改函数体外部变量值的时候使用地址传递利用地址传递可以实现函数返回多个值6. 一维数组和指针的关系6.1 数组和指针的关系数组的数组名是指向数组第一个元素的指针常量。可以将数组名a理解为int *型有两种情况a不能理解为int *型sizeof运算时数组名不能理解为int*型运算时数组名不能理解为int*型6.2 []运算符与指针C语言中[]可以搭配指针使用p[n]等价于指针n再取*。7. 一维整型数组传参此处可补充一维整型数组作为函数参数传递的相关内容附录条件编译与头文件条件编译#if 条件 代码块1 #elif 条件 代码块2 #else 代码块3 #endif // 如果没有定义宏名则将后续代码加入编译中 #ifndef 宏名 // 代码 #endif // 如果定义宏名则将后续代码加入编译中 #ifdef 宏名 // 代码 #endif头文件引入#include stdio.h // : 在系统/usr/include下找头文件 #include myheader.h // : 在当前目录下找头文件如果找不到再去系统目录下找指针的核心优势指针可以直接访问内存空间。

相关新闻

国内AI生成式引擎GEO服务选型指南:从诊断到持续优化的全流程决策框架

国内AI生成式引擎GEO服务选型指南:从诊断到持续优化的全流程决策框架

当越来越多企业意识到大模型正在重构流量入口,GEO(生成式引擎优化)已从"新概念"变成"必答题"。但GEO服务市场快速膨胀的同时,鱼龙混杂的问题也日益突出。本文提供一套从诊断到持续优化的全流程决策框架&#…

2026/9/10 14:27:41 阅读更多 →
STM32编码器模式:从正交信号到高精度位置速度检测

STM32编码器模式:从正交信号到高精度位置速度检测

1. 从“数脉冲”到“辨方向”:编码器模式的本质如果你用过STM32的通用定时器来捕获外部脉冲,可能会觉得编码器模式有点眼熟,但又不太一样。简单来说,通用定时器的输入捕获是“被动计数”,来一个脉冲,计数器…

2026/9/23 16:30:04 阅读更多 →
CAN总线数据解析:深入理解Intel与Motorola格式差异及实战应用

CAN总线数据解析:深入理解Intel与Motorola格式差异及实战应用

1. 从CAN通讯矩阵说起:为什么格式这么重要? 如果你刚开始接触汽车电子或者工业控制,第一次看到“CAN通讯矩阵”这个词,可能会觉得它是个高大上的概念。但说白了,它就是一份“通讯协议说明书”,规定了总线上…

2026/9/20 5:22:55 阅读更多 →

最新新闻

Claude Code OpenAI兼容与DeepSeek工具链集成实战指南

Claude Code OpenAI兼容与DeepSeek工具链集成实战指南

1. 标题里的“格式投降”不是妥协,是工程现实的主动选择“Claude Code下半年:格式投降OpenAI,功能借鉴DeepSeek”——这个标题乍看像一句调侃,实则精准戳中了当前本地大模型开发工具链演进的核心矛盾:协议兼容性比模型…

2026/9/23 16:29:27 阅读更多 →
一文搞懂蓝牙通信模块性能调优

一文搞懂蓝牙通信模块性能调优

一文搞懂蓝牙通信模块性能调优 是不是刚把蓝牙通信模块的代码从网上抄下来,连上开发板就报错?或者跑是能跑,但数据丢包率高达 20%,传输延迟大得让人想砸键盘?这种“复制来的代码跑不通,不知道怎么调”的绝望感,是每个嵌入式开发者都经历过的噩梦。…

2026/9/23 16:29:27 阅读更多 →
DeepSeek+Dify企业级AI知识库实战:API集成、部署与避坑指南

DeepSeek+Dify企业级AI知识库实战:API集成、部署与避坑指南

简介:面向企业技术开发与AI应用工程师,这份PDF系统讲解如何将DeepSeek与Dify组合使用,在3小时内搭建一套企业级AI知识库。整包共1个PDF文件,大小约1.9MB,全文20页,目录与正文完整清晰,适合需要快…

2026/9/23 16:29:27 阅读更多 →
期刊论文写作的“降噪”逻辑:毕夏AI官网如何帮你从“文献噪音”中捞出核心信号

期刊论文写作的“降噪”逻辑:毕夏AI官网如何帮你从“文献噪音”中捞出核心信号

毕夏AI官网 www.bixiaai.com 毕夏AI写作官网 www.bixiaai.com 毕夏官网 www.bixiaai.com 毕夏智能写作官网 www.bixiaai.com 你好,我是你们的老朋友,一个专注论文写作科普的教育博主。 今天我们不聊“论文怎么写”,聊一个更本质的问题…

2026/9/23 16:29:27 阅读更多 →
短消息中心业务功能详解:从提交转发到鉴权排障

短消息中心业务功能详解:从提交转发到鉴权排障

简介:这份PPT《试谈短消息中心业务功能》面向移动通信网络工程师、运维人员及相关专业学生,系统讲解短消息中心(SMS Center)在真实网络中的业务处理流程。内容从短消息提交校验与入队确认讲起,依次覆盖转发频度自动调节…

2026/9/23 16:29:27 阅读更多 →
机器人在认知症非药物干预中的证据现状:循证综述

机器人在认知症非药物干预中的证据现状:循证综述

摘要认知症的行为与心理症状(BPSD)管理日益强调非药物干预优先。机器人辅助疗法作为宠物辅助疗法的技术化延伸,在近十年积累了从随机对照试验到案例报告的多元证据。本文基于现有系统综述、荟萃分析与单项研究,对机器人辅助疗法在…

2026/9/23 16:28:26 阅读更多 →

日新闻

3招搞定手机怎么下载微信面试难题实战项目解析

3招搞定手机怎么下载微信面试难题实战项目解析

3招搞定手机怎么下载微信面试难题实战项目解析 面试被问“手机怎么下载微信”背后的原理,90%的人答不上来。别笑,这看似弱智的问题,实则是考察你对移动应用分发机制、安全校验及网络协议理解的试金石。我带过不少校招新人,他们背了八股文,却连一个A…

2026/9/23 0:00:23 阅读更多 →
2k显示屏性能优化踩坑:版本升级后API全变了,这份源码解析救了我

2k显示屏性能优化踩坑:版本升级后API全变了,这份源码解析救了我

2k显示屏性能优化踩坑:版本升级后API全变了,这份源码解析救了我 刚把开发环境的显示器从1080P换到2K,跑老项目直接报错,版本升级后 API…

2026/9/23 0:01:25 阅读更多 →
3步搞定美眉图实战项目,告别官方文档抓不住重点

3步搞定美眉图实战项目,告别官方文档抓不住重点

3步搞定美眉图实战项目,告别官方文档抓不住重点 官方文档翻了三遍还是云里雾里?别急,美眉图在实战项目中常被用来做数据可视化,但它的原理比你想的简单。今天咱们直接上手,用一个完整的小项目把美眉图跑通,不再死磕那些冗长的理论说明。…

2026/9/23 0:01:25 阅读更多 →

周新闻

Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化

Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化

直接铺开项目本身吧。这几个月我一直在折腾一件事:用Flutter给OpenHarmony做一款游戏集合类的App,说白了就是把若干小游戏塞进一个壳里,用统一入口分发。这个方向本身不算新鲜,真正让我花了不少心思的,是首页那堆游戏卡…

2026/9/23 4:55:02 阅读更多 →
Word表格编号全攻略:从列表编号到题注交叉引用

Word表格编号全攻略:从列表编号到题注交叉引用

写Word文档,最让人头疼的往往是那些“看起来不起眼”的小问题。比如表格编号这事:今天在表后面多加了两个空白行,明天给客户交稿前发现整个章节的编号全部错位,光是挨个改序号就能耗掉大半个下午。我前阵子帮人整理一份上百页的技…

2026/9/23 4:49:06 阅读更多 →
从第一个站到第二个站:独立开发者的静态网站选型与落地实践

从第一个站到第二个站:独立开发者的静态网站选型与落地实践

1. 项目概述1.1 核心需求解析做独立开发者这几年,说实话,第一个网站上线的那天晚上我兴奋得没睡着。但等它跑了半年,流量惨淡、功能臃肿、代码自己都懒得看第二遍之后,我才慢慢琢磨明白一个道理:第一个网站是练手&…

2026/9/23 9:53:41 阅读更多 →

月新闻

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能分类:[AI/大模型]细分主题:AI 增强型 CI/CD 流水线自动化与 GitOps 实践:Agent 工作流、工具调用与任务拆解:从原型到生产的验收清单很多团队在尝试用大…

2026/9/23 9:53:40 阅读更多 →
容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场分类:[工程技术]细分主题:Kubernetes 生产环境运维与排障实战:可复制的项目复盘模板与决策记录大部分团队的事故复盘报告,最后都变成了躺在 Confluence 或钉…

2026/9/23 9:53:40 阅读更多 →
容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步分类:[工程技术]细分主题:Docker 容器化技术与镜像安全管理:核心链路的逐步实现与关键代码取舍面对一个积累了五六年历史包袱的单体架构应用(包含 Web 接口、后台…

2026/9/23 9:53:40 阅读更多 →