Linux入门DAY14(高频难点:指针)

发布时间:2026/8/7 9:16:20

Linux入门DAY14(高频难点:指针)
前言在C语言学习过程中指针属于重难点很多同学容易混淆指针数组、数组指针、指针函数、函数指针几组概念做题写代码经常踩坑。本文结合课堂笔记梳理四类高频指针知识点区分概念本质、语法、使用场景以及易错禁区适合期末复习、刷题巩固帮助理清指针相关的逻辑避开野指针、参数类型不匹配等常见bug。1 指针数组本质数组数组中存储的元素为指针。语法格式int *a[5];char *p[5];int *a[5] 代表定义数组数组可以存放5个 int* 类型指针64位环境下一个指针占8字节整个数组总大小40字节。1.1 初始化// 将数组内全部指针初始化为空指针char *p[5] {NULL};// 存放字符串常量数组保存每个字符串的首地址char *p[5] {hello,world,how,are,you};p[0] 为 char* 类型保存字符串 hello 首字符 h 的地址。1.2 指针数组 VS 二维字符数组考试高频考点//二维字符数组存储字符串本体总字节数3*100300字节char str[3][100] {hello,world,how};//指针数组仅存储各个字符串的首地址3个指针64位下占24字节char *pstr[3] {hello,world,how};项目 二维字符数组 char str[N][100] 指针数组 char *pstr[N]存储内容 保存字符串本身 保存各个字符串的首地址数组名退化类型 数组指针 char (*)[100] 二级指针 char **字符修改 可以修改数组内每一个字符 字符串常量空间不可修改排序交换 需要strcpy拷贝字符串开销大 直接交换指针效率高⚠注意二者类型不同不能互相作为函数实参传递会报类型不匹配警告。2 二级指针本质指针用于存放另一个指针变量的地址。int **p; //保存int*类型指针变量的地址char **p; //保存char*类型指针变量的地址二级指针两大使用场景1. 函数内部修改外部的指针变量想要在被调用函数修改主函数的指针变量实参传递指针变量的地址形参使用二级指针接收。2. 接收指针数组指针数组的数组名传参时会退化为二级指针函数形参用 char ** 接收。示例代码void func(char **p){}int main(){char *arr[] {aa,bb};func(arr); //数组名arr退化为 char**return 0;}3 指针函数返回指针的函数本质函数该函数的返回值是指针类型。char* fun(void); //指针函数返回char*指针✅允许返回的地址1. static修饰的静态变量的地址2. 全局变量的地址3. 字符串常量的地址4. 函数参数传递进来的内存地址5. 堆上申请、尚未释放的内存地址❌禁止返回局部普通变量、局部数组的地址。函数执行结束局部栈内存被回收返回得到野指针。错误示例int* bad(void){int a 10;return a; //错误返回野指针}4 函数指针本质指针专门用来存放函数的入口地址函数名本身就是函数入口地址。4.1 定义语法返回值类型 (*指针名)(形参类型);示例//定义函数指针pfun指向返回int、拥有两个int参数的函数int (*pfun)(int,int);4.2 完整使用示例#include stdio.hint add(int a,int b){return ab;}int main(void){//1.定义初始化为空int (*pfun)(int,int) NULL;//2.赋值保存函数入口地址pfun add;//3.调用函数两种写法等价int ret pfun(10,20);//int ret add(10,20);printf(%d,ret);return 0;}4.3 核心应用回调函数将函数指针作为另一个函数的参数进行传递这个传入的函数称为回调函数主要作用降低代码耦合度。易混概念速查表写法 名称 本质 传参退化类型char *p[5] 指针数组 数组数组元素为指针 char **char (*p)[100] 数组指针 指针指向一维数组 无char* fun() 指针函数 函数返回指针 无int (*p)(int,int) 函数指针 指针保存函数入口地址 无做题小技巧观察括号1. (*p) 带括号代表是指针2. *p[] 无括号 [] 优先和变量结合代表是数组。小结本文区分了四组极易混淆的指针相关概念指针数组、二级指针、指针函数、函数指针。1. 指针数组是数组存放一堆指针传参退化为二级指针常用来管理多个字符串常量。2. 二级指针用来存放指针的地址两大用途函数内修改外部指针、接收指针数组。3. 指针函数是函数重点记住不能返回局部栈变量地址避免野指针。4. 函数指针是指针存储函数入口主要用于实现回调函数解耦代码。指针是C语言的灵魂做题写代码时先分清“它到底是数组还是函数还是指针”很多错误就可以直接规避。

相关新闻

深入分析Xcode中SwiftUI的可视化编辑工具:Canvas、Inspector与Library

深入分析Xcode中SwiftUI的可视化编辑工具:Canvas、Inspector与Library

2026/8/6 6:41:08

SwiftUI 带来的描述性构建界面能力,为 Xcode 引入诸多的可视化工具奠定了基础。可视化界面搭建,早期在网页开发中,曾经流行过,最著名的代表 Dreamweaver。如果把 HMTL 源码视为因,那么浏览器渲染的界面则为果。从最后的…

2026上海橡塑展怎么挑选展台设计搭建公司?认准高品质搭建服务商

2026上海橡塑展怎么挑选展台设计搭建公司?认准高品质搭建服务商

2026/8/6 6:41:08

2026 上海橡塑展汇聚众多橡塑材料、机械设备行业企业,海量展位同台亮相,想要抓住专业采购客商目光,高品质的展位落地效果尤为关键。不少参展企业筹备展会时,都会寻找靠谱的展台设计搭建团队。挑选合作方不能只看效果图&#xff0c…

GEO市场规模有多大?2026—2030年中国GEO市场规模预测

GEO市场规模有多大?2026—2030年中国GEO市场规模预测

2026/8/6 6:41:08

按照爱分析对中国GEO市场的预测,市场规模将从2026年的48亿元,依次增长至2027年的154亿元、2028年的430亿元、2029年的860亿元,并在2030年达到1,376亿元。2026—2030年复合增长率预计超过130%,GEO将在2030年迈向千亿级市场。这里的…

AI编程助手ClaudeCode:从安装配置到高效工作流全解析

AI编程助手ClaudeCode:从安装配置到高效工作流全解析

2026/8/7 9:12:40

1. 项目概述:ClaudeCode是什么,以及为什么你需要它 如果你是一名开发者,最近肯定在各种技术社区和社群里频繁听到“Claudecode”这个词。它不是什么新的编程语言,也不是某个神秘的框架,而是一个正在迅速崛起的AI编程助…

SQL索引优化实战:提升查询性能10倍的黄金法则

SQL索引优化实战:提升查询性能10倍的黄金法则

2026/8/7 9:12:40

1. 索引策略优化实战:让SQL查询速度飙升10倍的终极指南作为一名数据库工程师,我经历过无数次SQL查询性能问题的折磨。记得有一次,一个简单的报表查询竟然需要30分钟才能返回结果,业务部门直接冲到技术部拍桌子。经过系统排查&…

BLE蓝牙安全机制全解析:从配对绑定到实战开发避坑指南

BLE蓝牙安全机制全解析:从配对绑定到实战开发避坑指南

2026/8/7 9:12:40

1. 项目概述:BLE安全,远不止“配对”那么简单 提到BLE蓝牙的安全机制,很多开发者甚至硬件爱好者的第一反应可能就是“配对码”,比如经典的“0000”或者“1234”。但如果你真这么想,那可能已经踩进了第一个坑。我接触过…

Python pickle模块深度解析:从序列化原理到安全实践

Python pickle模块深度解析:从序列化原理到安全实践

2026/8/7 9:12:40

1. 项目概述:为什么我们需要PKL文件? 在Python的数据处理、机器学习模型部署乃至日常的脚本开发中,我们经常面临一个核心问题:如何高效、可靠地保存和加载程序运行中的中间状态或最终结果?你可能会想到用文本文件&…

C++ Boost.Beast 自定义 Body:零拷贝与流式处理

C++ Boost.Beast 自定义 Body:零拷贝与流式处理

2026/8/7 9:12:40

本文深入 Boost.Beast 的 Body 体系,讲解 BodyReader/BodyWriter 概念要求,实现一个自定义 Body,并详解 http::buffer_body 的零拷贝流式用法。所有 API 均对照 Beast 官方文档与头文件源码核实。 这是 Boost.Beat 系列的最难一篇,涉及 Beast 的核心扩展机制。 一、为什么需…

如何用AlwaysOnTop彻底解决Windows窗口管理的三大痛点?

如何用AlwaysOnTop彻底解决Windows窗口管理的三大痛点?

2026/8/7 9:02:40

如何用AlwaysOnTop彻底解决Windows窗口管理的三大痛点? 【免费下载链接】AlwaysOnTop Make a Windows application always run on top 项目地址: https://gitcode.com/gh_mirrors/al/AlwaysOnTop 你是否经常在多个窗口间来回切换,为了查看参考文档…

ncmdumpGUI:一键解锁网易云音乐ncm文件的终极解决方案

ncmdumpGUI:一键解锁网易云音乐ncm文件的终极解决方案

2026/8/6 19:19:00

ncmdumpGUI:一键解锁网易云音乐ncm文件的终极解决方案 【免费下载链接】ncmdumpGUI C#版本网易云音乐ncm文件格式转换,Windows图形界面版本 项目地址: https://gitcode.com/gh_mirrors/nc/ncmdumpGUI 你是否曾经从网易云音乐下载了心爱的歌曲&am…

分布式配置中心选型实战:Nacos与Consul在创业场景下的对比

分布式配置中心选型实战:Nacos与Consul在创业场景下的对比

2026/8/5 6:02:27

分布式配置中心选型实战:Nacos与Consul在创业场景下的对比工程导读:本文深入讨论 分布式配置中心选型实战:Nacos与Consul在创业场景下的对比 在生产工程实践中的核心落地方案。基于 分布式架构与微服务设计 视角,剖析实际痛点、架…

MoneyPrinterPlus实战指南:AI视频批量生成与自动化发布完整解决方案

MoneyPrinterPlus实战指南:AI视频批量生成与自动化发布完整解决方案

2026/8/5 8:19:55

MoneyPrinterPlus实战指南:AI视频批量生成与自动化发布完整解决方案 【免费下载链接】MoneyPrinterPlus AI一键批量生成各类短视频,自动批量混剪短视频,自动把视频发布到抖音,快手,小红书,视频号上,赚钱从来没有这么容易过! 支持本地语音模型chatTTS,fasterwhisper,…

CAD图库管理:从文件归档到设计资产管理的效率革命

CAD图库管理:从文件归档到设计资产管理的效率革命

2026/8/7 0:02:15

你肯定遇到过这种情况:打开一个老项目,想找某个特定的图块——比如一个标准的门、一个特定的设备符号,或者一个公司logo。你记得它就在某个DWG文件里,或者曾经从某个同事那里拷来过。于是,你开始在一堆命名混乱的文件夹…

5分钟掌握Wand-Enhancer:2026年终极WeMod专业版免费解锁指南

5分钟掌握Wand-Enhancer:2026年终极WeMod专业版免费解锁指南

2026/8/7 0:02:15

5分钟掌握Wand-Enhancer:2026年终极WeMod专业版免费解锁指南 【免费下载链接】Wand-Enhancer Advanced UX and interoperability extension for Wand (WeMod) app 项目地址: https://gitcode.com/GitHub_Trending/we/Wand-Enhancer Wand-Enhancer是一款功能强…

“Quality Control(质量控制)”在软件工程中通常指通过一系列活动确保软件产品符合预定的质量标准和用户需求

“Quality Control(质量控制)”在软件工程中通常指通过一系列活动确保软件产品符合预定的质量标准和用户需求

2026/8/7 0:02:15

“Quality Control(质量控制)”在软件工程中通常指通过一系列活动确保软件产品符合预定的质量标准和用户需求。而“软件测试”是质量控制的关键手段之一,属于QC范畴下的具体实践,其目标是发现缺陷、验证功能正确性、评估软件质量属…

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

2026/8/6 5:43:30

一天写完毕业论文在2026年已不再是天方夜谭。2026年最炸裂、实测能大幅提速的AI论文写作工具,覆盖选题构思、文献整理、内容生成、格式排版等核心场景,真正帮你高效搞定论文难题。 一、全流程王者:一站式搞定论文全链路(一天定稿首…

导师推荐!2026最新AI论文工具测评与实用推荐

导师推荐!2026最新AI论文工具测评与实用推荐

2026/8/7 8:02:42

2026年真正好用的AI论文工具,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。 一、…

告别游戏崩溃:XCOM 2模组管理器的智能革命

告别游戏崩溃:XCOM 2模组管理器的智能革命

2026/8/4 15:11:03

告别游戏崩溃:XCOM 2模组管理器的智能革命 【免费下载链接】xcom2-launcher The Alternative Mod Launcher (AML) is a replacement for the default game launchers from XCOM 2 and XCOM Chimera Squad. 项目地址: https://gitcode.com/gh_mirrors/xc/xcom2-lau…