【C 语言入门学习笔记 Day12】指针进阶:字符数组传参、指针函数、函数指针与 const 指针全解析
本文为 C 语言第十二天的学习笔记承接上一篇一维整型数组与指针的基础内容继续梳理指针模块的进阶核心知识点一维字符数组传参与遍历、指针函数与函数指针的辨析、const 修饰指针的三种形态。这部分内容是 C 语言笔试、面试的高频考点也是区分指针入门与进阶的关键节点。文章目录一、一维字符型数组传参1. 字符数组传参的本质2. 字符数组的两种遍历方式方式 1指针偏移法方式 2下标法二、指针函数与函数指针1. 指针函数返回指针的函数核心禁忌绝对不能返回局部变量的地址合法的返回场景2. 函数指针指向函数的指针三、const 修饰的指针1. 修饰指向的内容指针可变内容不可改2. 修饰指针本身指针不可变内容可改3. 双重 const指针和内容都不可改快速判断口诀总结一、一维字符型数组传参一维字符数组字符串的传参本质和整型数组一致数组作为参数传递时会退化为指向首元素的指针。但字符数组有特殊性 —— 字符串以\0作为结束标志因此传参时通常不需要额外传递长度可通过结束符自主遍历。1. 字符数组传参的本质和整型数组相同以下三种函数形参写法完全等价最终都会被编译器处理为指向首元素的指针// 写法1不指定长度的数组形式 int fun(char pstr[]); // 写法2指定长度的数组形式长度不生效仍退化为指针 int fun(char pstr[32]); // 写法3指针形式最贴近本质 int fun(char *pstr);2. 字符数组的两种遍历方式借助\0结束标志我们可以用两种方式遍历字符串效果完全等价char str[32] {0}; char *p NULL; p str; // 指针指向数组首元素等价于 p str[0];方式 1指针偏移法通过指针自增移动指向位置直到遇到结束符\0停止。while (*p ! \0) { p; // 指针向高地址偏移1个char大小 }方式 2下标法通过数组下标逐个访问元素本质是*(stri)的语法糖。int i 0; while (str[i] ! \0) { i; }二、指针函数与函数指针这是一对极易混淆的概念核心区分方法看本质是函数还是指针。1. 指针函数返回指针的函数本质是一个函数只是它的返回值是指针类型。定义格式返回值类型 *函数名(参数列表);int *fun(int x, int y); // 返回int*类型的函数 char *fun(void); // 返回char*类型的函数核心禁忌绝对不能返回局部变量的地址局部变量存储在栈区函数调用结束后栈帧会被销毁局部变量的空间会被系统回收。此时返回的地址就变成了野指针后续访问会触发未定义行为甚至导致程序崩溃。合法的返回场景返回全局变量、静态局部变量的地址生命周期贯穿程序全程返回堆空间malloc 申请的地址指针函数返回的指针可以直接作为另一个函数的实参使用2. 函数指针指向函数的指针本质是一个指针变量它指向一个函数存储的是函数的入口地址。定义格式返回值类型 (*指针变量名)(参数类型列表);// 定义一个函数指针p指向返回值为int、参数为两个int的函数 int (*p)(int, int);易错提醒括号不能省略如果写成int *p(int, int);就变成了「返回 int * 的指针函数」而不是函数指针。*和变量名用括号包裹才表示这是一个指针。三、const 修饰的指针const关键字的核心含义是只读被它修饰的内容不可被修改。根据const修饰的对象不同指针分为三类共 5 种写法是笔试必考内容。1. 修饰指向的内容指针可变内容不可改const int *p; // 写法1 int const *p; // 写法2与写法1完全等价修饰对象*p即指针指向的内存空间的内容特点指针变量p本身可以修改可以改变指针的指向不能通过*p修改指向空间里的值适用场景只读数据传递防止函数内部意外修改外部数据2. 修饰指针本身指针不可变内容可改int *const p;修饰对象p即指针变量本身特点指针变量p不可修改指向不能变定义时必须初始化可以通过*p修改指向空间里的值适用场景指针指向固定不允许被篡改3. 双重 const指针和内容都不可改const int *const p; // 写法1 int const *const p; // 写法2与写法1完全等价修饰对象同时修饰p和*p特点指针的指向不能修改指向的内容也不能修改定义时必须初始化适用场景完全只读的场景安全性最高快速判断口诀看const在*的左边还是右边const在*左边 → 修饰指向的内容内容只读const在*右边 → 修饰指针本身指针只读两边都有const→ 都只读总结字符数组传参同样退化为首元素指针借助\0结束符可实现下标、指针两种遍历方式。指针函数本质是函数返回指针函数指针本质是指针指向函数核心看*和括号的位置。指针函数严禁返回局部变量的地址避免野指针问题。const 指针核心看修饰对象修饰*p则内容不可改修饰p则指向不可改双重 const 则都不可改。

相关新闻

时序预测实战指南:从ARIMA到Transformer,核心方法与行业应用解析

时序预测实战指南:从ARIMA到Transformer,核心方法与行业应用解析

1. 项目概述:从数据到洞察,时序预测的实战价值时序数据预测,听起来是个挺学术的词,但说白了,它就是基于历史数据去猜未来。比如,你手机上的天气App告诉你明天会下雨,电商平台预测你下周可能会买…

2026/8/2 4:26:24阅读更多 →
电赛控制类赛题实战:STM32+RTOS构建稳定嵌入式控制系统

电赛控制类赛题实战:STM32+RTOS构建稳定嵌入式控制系统

如果你正在准备2026年电赛,尤其是控制类题目,那么“发挥部分”这几个字很可能让你既兴奋又头疼。兴奋的是,这是拉开差距、冲击高分的核心战场;头疼的是,题目往往开放、综合,从传感器选型、算法实现到系统调…

2026/8/2 4:26:24阅读更多 →
从远程仓库到企业级协作:Git push、pull、PR、多人开发与分支模型

从远程仓库到企业级协作:Git push、pull、PR、多人开发与分支模型

写在前面 当我只在自己的电脑上使用 Git 时,add、commit、分支和合并已经能解决大部分版本管理问题。可一旦两个人同时开发,问题就会立刻升级:代码放在哪里交换?为什么我能提交却推不上去?origin/master 到底是远程分…

2026/8/2 4:26:24阅读更多 →
Figma 使用 figma-developer-mcp 搭建本地 mcp,以及 Workbuddy 配置 本地 MCP

Figma 使用 figma-developer-mcp 搭建本地 mcp,以及 Workbuddy 配置 本地 MCP

Figma 使用 figma-developer-mcp 搭建本地 MCP,以及 Workbuddy 配置 本地 Figma MCP 摘要:本文介绍如何通过社区维护的 figma-developer-mcp 项目,在本地搭建 Figma MCP 服务,并配置到 Workbuddy 中,实现设计稿与 AI 辅…

2026/8/2 5:38:40阅读更多 →
组件消失、样式全乱:一次 HBuilderX 发行构建的踩坑复盘

组件消失、样式全乱:一次 HBuilderX 发行构建的踩坑复盘

背单词小程序「优词记 Pro」技术复盘第六篇。前面几篇偏设计取舍,今天是纯粹的踩坑记录——发布前夜,生产构建的产物里导航栏和 tabbar 直接消失了,全局样式错乱,而开发预览一切正常。排查过程有点意思,写出来给同样用…

2026/8/2 5:38:40阅读更多 →
AI驱动复杂组织进化:从机械控制到生态培育的管理范式革命

AI驱动复杂组织进化:从机械控制到生态培育的管理范式革命

1. 项目概述:当复杂组织遇上AI,一场管理学的范式革命最近几年,我身边不少做企业战略、组织发展的朋友,都陷入了一种“知识焦虑”。传统的管理理论,无论是经典的科层制、流程再造,还是近些年流行的OKR、阿米…

2026/8/2 5:38:40阅读更多 →
【计算机毕业设计单片机案例】基于嵌入式开发板的模式可切换交通灯系统研发 基于 STM32 的绿灯时长自定义交通信号灯设计(016101)

【计算机毕业设计单片机案例】基于嵌入式开发板的模式可切换交通灯系统研发 基于 STM32 的绿灯时长自定义交通信号灯设计(016101)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于嵌入式单片机,Java、小程序技术领域和毕业项目实战 ✌️…

2026/8/2 5:38:40阅读更多 →
3分钟搞定全网歌曲歌词:163MusicLyrics免费歌词下载工具终极指南

3分钟搞定全网歌曲歌词:163MusicLyrics免费歌词下载工具终极指南

3分钟搞定全网歌曲歌词:163MusicLyrics免费歌词下载工具终极指南 【免费下载链接】163MusicLyrics 云音乐歌词获取处理工具【网易云、QQ音乐】 项目地址: https://gitcode.com/GitHub_Trending/16/163MusicLyrics 还在为音乐播放器里空白的歌词栏而烦恼吗&am…

2026/8/2 5:38:40阅读更多 →
日本麻将什么是役牌:从基础定义到进张效率的深度解析

日本麻将什么是役牌:从基础定义到进张效率的深度解析

日本麻将什么是役牌?役牌是指翻牌(中、发、白)以及场风牌和自风牌,组成刻子即可成立一番的宝牌。作为日麻最基础的起和手段,役牌不仅降低了胡牌门槛,更是新手构建听牌形状的关键支点。阶雀Pro 是日本麻将学…

2026/8/2 5:36:40阅读更多 →
MATLAB xcorr函数详解:从互相关原理到四大实战应用

MATLAB xcorr函数详解:从互相关原理到四大实战应用

1. 从一次信号“找茬”说起:为什么我们需要互相关几年前,我在处理一组声学传感器数据时遇到了一个棘手的问题。我有两个麦克风记录了一段相同的音频信号,理论上它们接收到的声音波形应该非常相似,只是由于麦克风位置不同&#xff…

2026/8/2 0:00:10阅读更多 →
限时公开!某头部SaaS公司内部AI模板工厂架构文档(含5类行业模板源码+性能压测报告)

限时公开!某头部SaaS公司内部AI模板工厂架构文档(含5类行业模板源码+性能压测报告)

更多请点击: https://intelliparadigm.com 第一章:AI模板批量生成的核心价值与落地全景 AI模板批量生成正从实验性工具演进为现代软件工程的关键基础设施。它通过语义理解、上下文感知与结构化约束,将重复性高、模式明确的代码/文档/配置生成…

2026/8/2 0:00:12阅读更多 →
如何快速找回消失的网页:Web Archives浏览器扩展终极指南

如何快速找回消失的网页:Web Archives浏览器扩展终极指南

如何快速找回消失的网页:Web Archives浏览器扩展终极指南 【免费下载链接】web-archives Browser extension for viewing archived and cached versions of web pages, available for Chrome, Edge and Safari 项目地址: https://gitcode.com/gh_mirrors/we/web-a…

2026/8/2 0:00:13阅读更多 →
MATLAB xcorr函数详解:从互相关原理到四大实战应用

MATLAB xcorr函数详解:从互相关原理到四大实战应用

1. 从一次信号“找茬”说起:为什么我们需要互相关几年前,我在处理一组声学传感器数据时遇到了一个棘手的问题。我有两个麦克风记录了一段相同的音频信号,理论上它们接收到的声音波形应该非常相似,只是由于麦克风位置不同&#xff…

2026/8/2 0:00:10阅读更多 →
限时公开!某头部SaaS公司内部AI模板工厂架构文档(含5类行业模板源码+性能压测报告)

限时公开!某头部SaaS公司内部AI模板工厂架构文档(含5类行业模板源码+性能压测报告)

更多请点击: https://intelliparadigm.com 第一章:AI模板批量生成的核心价值与落地全景 AI模板批量生成正从实验性工具演进为现代软件工程的关键基础设施。它通过语义理解、上下文感知与结构化约束,将重复性高、模式明确的代码/文档/配置生成…

2026/8/2 0:00:12阅读更多 →
如何快速找回消失的网页:Web Archives浏览器扩展终极指南

如何快速找回消失的网页:Web Archives浏览器扩展终极指南

如何快速找回消失的网页:Web Archives浏览器扩展终极指南 【免费下载链接】web-archives Browser extension for viewing archived and cached versions of web pages, available for Chrome, Edge and Safari 项目地址: https://gitcode.com/gh_mirrors/we/web-a…

2026/8/2 0:00:13阅读更多 →
无损视频剪辑终极指南:如何实现快速高效的多媒体处理

无损视频剪辑终极指南:如何实现快速高效的多媒体处理

无损视频剪辑终极指南:如何实现快速高效的多媒体处理 【免费下载链接】lossless-cut The swiss army knife of lossless video/audio editing 项目地址: https://gitcode.com/gh_mirrors/lo/lossless-cut 在数字媒体创作领域,视频编辑处理的质量损…

2026/8/2 1:29:34阅读更多 →
AI辅助本科论文写作:8大工具评测与高效使用指南

AI辅助本科论文写作:8大工具评测与高效使用指南

1. 本科生论文写作的AI辅助现状本科毕业论文是每个大学生必须跨越的一道坎。记得我当年写论文时,光是文献检索就花了整整两周时间,打印的参考文献堆满了半个书桌。如今AI技术的发展为学术写作带来了革命性变化,合理使用这些工具可以节省80%以…

2026/8/2 2:32:55阅读更多 →
如何快速配置大麦自动抢票系统:从零开始搭建Python抢票助手

如何快速配置大麦自动抢票系统:从零开始搭建Python抢票助手

如何快速配置大麦自动抢票系统:从零开始搭建Python抢票助手 【免费下载链接】ticket-purchase 大麦自动抢票,支持人员、城市、日期场次、价格选择 项目地址: https://gitcode.com/GitHub_Trending/ti/ticket-purchase 还在为抢不到热门演唱会门票…

2026/8/2 2:09:20阅读更多 →