嵌入式学习第十三天报告:从void指针深入理解C语言内存与指针
1. void指针通用内存操作工具1.1 void指针的基本概念void指针void *是C语言中一种特殊的指针类型它不指向任何具体的数据类型。void指针的主要特点是通用性可以指向任意类型的数据灵活性通过强制类型转换可以访问不同类型的数据内存操作主要用于内存地址的存储和传递1.2 void指针的定义与使用// void指针的定义void*pNULL;// 指向不同类型的数据intnum100;floatfnum3.14;charchA;void*vp;vpnum;// 指向整型vpfnum;// 指向浮点型vpch;// 指向字符型1.3 void指针的强制类型转换由于void指针没有具体类型使用时必须进行强制类型转换intnum100;void*vpnum;// 错误不能直接解引用void指针// *vp 200;// 正确先进行类型转换int*ip(int*)vp;*ip200;printf(num %d\n,num);// 输出2001.4 void指针的应用场景1.4.1 通用函数参数// 通用的内存设置函数voidset_memory(void*ptr,intvalue,size_tsize){unsignedchar*p(unsignedchar*)ptr;for(size_ti0;isize;i){p[i](unsignedchar)value;}}##2.二级指针指针的指针 ###2.1二级指针的概念 二级指针是指向指针的指针用于存储指针变量的地址。 cintnum100;int*pnum;// 一级指针指向intint**ppp;// 二级指针指向int*printf(num的地址: %p\n,num);printf(p的值: %p\n,p);printf(pp的值: %p\n,pp);printf(*pp的值: %p\n,*pp);// 等价于pprintf(**pp的值: %d\n,**pp);// 等价于num2.2 二级指针的应用2.2.1 修改函数外部的指针voidallocate_memory(int**ptr,intsize){*ptr(int*)malloc(size*sizeof(int));if(*ptr!NULL){for(inti0;isize;i){(*ptr)[i]i1;}}}intmain(void){int*arrayNULL;allocate_memory(array,5);// 传递指针的地址if(array!NULL){for(inti0;i5;i){printf(array[%d] %d\n,i,array[i]);}free(array);}return0;}2.2.2 字符串数组操作voidmodify_string_array(char**str_array,intindex,constchar*new_str){if(str_array!NULLindex0){// 释放旧字符串free(str_array[index]);// 分配新字符串str_array[index](char*)malloc(strlen(new_str)1);if(str_array[index]!NULL){strcpy(str_array[index],new_str);}}}3. 指针数组与数组指针3.1 指针数组指针数组是数组数组的每个元素都是指针。// 定义指针数组inta10,b20,c30;int*ptr_array[3]{a,b,c};// 访问指针数组元素for(inti0;i3;i){printf(ptr_array[%d] %p, *ptr_array[%d] %d\n,i,ptr_array[i],i,*ptr_array[i]);}// 字符串指针数组常用char*str_array[]{Hello,World,Embedded,System};for(inti0;i4;i){printf(str_array[%d] %s\n,i,str_array[i]);}3.2 数组指针数组指针是指针指向一个数组。// 定义数组指针intarr[5]{1,2,3,4,5};int(*p)[5]arr;// p是指向包含5个int的数组的指针// 访问数组元素for(inti0;i5;i){printf((*p)[%d] %d\n,i,(*p)[i]);// 等价于printf(arr[%d] %d\n, i, arr[i]);}// 二维数组与数组指针intmatrix[3][4]{{1,2,3,4},{5,6,7,8},{9,10,11,12}};int(*p_matrix)[4]matrix;// 指向包含4个int的数组的指针for(inti0;i3;i){for(intj0;j4;j){printf(%2d ,p_matrix[i][j]);// 等价于matrix[i][j]}printf(\n);}4. const指针保护数据不被修改4.1 const指针的四种形式intnum100;intvalue200;// 1. 指向常量的指针指针可变指向的值不可变constint*p1num;// *p1 300; // 错误不能修改指向的值p1value;// 正确可以改变指针的指向// 2. 常量指针指针不可变指向的值可变int*constp2num;*p2300;// 正确可以修改指向的值// p2 value; // 错误不能改变指针的指向// 3. 指向常量的常量指针指针和指向的值都不可变constint*constp3num;// *p3 300; // 错误不能修改指向的值// p3 value; // 错误不能改变指针的指向// 4. 等价于第1种intconst*p4num;// 等价于 const int *p4

相关新闻

ToastFish:让摸鱼时间变成英语提升的黄金时刻

ToastFish:让摸鱼时间变成英语提升的黄金时刻

ToastFish:让摸鱼时间变成英语提升的黄金时刻 【免费下载链接】ToastFish 一个利用摸鱼时间背单词的软件。 项目地址: https://gitcode.com/GitHub_Trending/to/ToastFish 你是否曾有过这样的体验?工作间隙刷手机、开会发呆、等待文件传输时&…

2026/8/4 6:06:26 阅读更多 →
AI代码审计实战:从静态扫描到智能安全护航的研发流程变革

AI代码审计实战:从静态扫描到智能安全护航的研发流程变革

1. 项目概述:当AI成为代码的“安检员”最近在团队内部搞了个有意思的实践,我们称之为“AI驱动的代码安全卫士”。核心就是拿华为云CodeArts的“代码智能审计助手”这个工具,深度折腾了一番,把它从一个“静态规则扫描器”用成了我们…

2026/8/4 6:06:26 阅读更多 →
SpringBoot3.x启动流程与优化实践

SpringBoot3.x启动流程与优化实践

1. SpringBoot3.x启动流程全景解析作为Java生态中最主流的应用框架,SpringBoot的启动机制一直是开发者深入理解框架的核心切入点。最近在将一个老项目迁移到SpringBoot3.x时,我系统梳理了新版启动流程的变化点,这里结合源码层级的调试分析&am…

2026/8/4 6:06:26 阅读更多 →

最新新闻

华硕笔记本终极控制神器:G-Helper轻量级替代方案完全指南

华硕笔记本终极控制神器:G-Helper轻量级替代方案完全指南

华硕笔记本终极控制神器:G-Helper轻量级替代方案完全指南 【免费下载链接】g-helper Lightweight Armoury Crate alternative for Asus laptops with nearly the same functionality. Works with ROG Zephyrus, Flow, TUF, Strix, Scar, ProArt, Vivobook, Zenbook,…

2026/8/4 6:51:46 阅读更多 →
SpringCloud中OpenFeign核心原理与最佳实践

SpringCloud中OpenFeign核心原理与最佳实践

1. OpenFeign在SpringCloud中的核心价值第一次接触OpenFeign时,我被它声明式的接口定义方式惊艳到了。相比传统的RestTemplate,用接口方法映射远程调用的设计简直是对开发者体验的降维打击。在微服务架构中,服务间通信就像城市里的快递网络—…

2026/8/4 6:51:46 阅读更多 →
SpringBoot+Vue+Hive构建旅游数据分析平台实践

SpringBoot+Vue+Hive构建旅游数据分析平台实践

1. 项目概述这个毕业设计项目是一个基于SpringBootVueMySQLHive的旅游数据分析与应用平台(ABO平台)。作为一个全栈项目,它整合了当前企业级开发中最主流的技术栈,实现了从数据采集、存储、处理到可视化展示的完整闭环。我在实际开…

2026/8/4 6:51:46 阅读更多 →
2026值得蹲守的国内科技峰会盘点,普通科技爱好者照着看就行

2026值得蹲守的国内科技峰会盘点,普通科技爱好者照着看就行

平时闲来总爱刷前沿科技资讯,不管是基础物理新进展、AI落地新玩法,还是行业投融资风向、硬核新材料突破,线下大型峰会是一手新鲜信息最集中的渠道。整理了2026年全年不同时间段含金量较高的各类科技论坛,结合普通观众观看门槛、看…

2026/8/4 6:51:46 阅读更多 →
轻量级RAG智能问答助手:从文档处理到本地部署的完整实践

轻量级RAG智能问答助手:从文档处理到本地部署的完整实践

1. 从“文档中心”到“智能大脑”:一个真实的需求场景最近在折腾公司内部的一个老文档中心,这玩意儿堆了上千份产品手册、技术白皮书和项目复盘,每次新人进来或者遇到个冷门问题,都得靠关键词搜半天,运气好能翻到&…

2026/8/4 6:51:46 阅读更多 →
屌丝的出路

屌丝的出路

屌丝的出路 作为一个在 IT 行业摸爬滚打多年的“屌丝”,我深知那种“高不成低不就”的焦虑。没有名校背景,没有大厂光环,没有惊人的天赋,每天在 CRUD 和修 Bug 之间反复横跳。但我想说,屌丝的出路不在于“逆袭”&#…

2026/8/4 6:50:45 阅读更多 →

日新闻

AI Agent白手起家26: 使用标准事件驱动大模型实践

AI Agent白手起家26: 使用标准事件驱动大模型实践

纲要 练习目标:掌握大模型标准事件的调用回顾 LangChain 中的核心标准事件 invokestreambatchastream_eventswith_structured_output 环境准备实战代码:多种事件调用对比 同步调用与流式输出批量处理异步事件流监听结构化输出 运行说明与预期结果总结与扩…

2026/8/4 0:00:40 阅读更多 →
dealsea是什么?跨境卖家必知的美国deal站入门指南

dealsea是什么?跨境卖家必知的美国deal站入门指南

说实话,第一次听说美国这个老牌折扣网站的跨境卖家,十个有八个会问同一个问题:这个平台到底是干嘛的?我见过一个做家居出口的朋友,他在亚马逊上月销二十万美金,却从来没用过它。我给他看了首页——一屏一屏…

2026/8/4 0:01:40 阅读更多 →
清华大学重磅EST:植物自导电闪蒸焦耳热600°C/2600°C两步法!稀土超积累植物秒级转化为CeO₂-石墨烯电催化剂!

清华大学重磅EST:植物自导电闪蒸焦耳热600°C/2600°C两步法!稀土超积累植物秒级转化为CeO₂-石墨烯电催化剂!

通讯作者:邓兵、刘建国通讯单位:清华大学DOI:https://doi.org/10.1021/acs.est.6c00603研究背景稀土元素(REEs)是清洁能源技术与电子器件不可或缺的核心原料,然而传统提取方式依赖能耗高、排放大的采矿与强…

2026/8/4 0:01:40 阅读更多 →

周新闻

最大流算法详解:从水管网络到Ford-Fulkerson与Dinic实战

最大流算法详解:从水管网络到Ford-Fulkerson与Dinic实战

1. 从水管网络到最大流:一个核心问题的诞生想象一下,你是一个城市供水系统的总工程师。你的城市有多个水源(水库),需要通过一个复杂的地下管道网络,将水输送到各个居民区。每条管道都有其最大通水能力&…

2026/8/3 4:58:13 阅读更多 →
基于Springboot的企业门户网站(源码+LW+调试文档+讲解)

基于Springboot的企业门户网站(源码+LW+调试文档+讲解)

温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台…

2026/8/3 1:53:31 阅读更多 →
MATLAB xcorr函数详解:从互相关原理到四大实战应用

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

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

2026/8/4 5:26:40 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/3 13:07:03 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/3 5:19:38 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/3 8:27:36 阅读更多 →