C语言进阶学习笔记:内存函数、结构体、共用体与文件操作
前言近期完成C语言后半段进阶内容学习从内存拷贝函数到结构体对齐、枚举共用体再到基础文件操作把容易踩坑的知识点整理复盘配套练习代码上传仓库。代码仓库https://gitcode.com/gcw_RyL6LF93/study-c-languague.git一、内存操作系列函数string.h1. memcpy 内存拷贝作用拷贝num个字节内存数据支持任意类型数据复制不处理内存重叠场景。原型void* memcpy(void* dest, const void* src, size_t num);坑点遇到两块内存区域重叠时拷贝数据会被覆盖结果出错只负责按字节搬运不会自动追加\0。2. memmove 可重叠拷贝原型void* memmove(void* dest, const void* src, size_t tn);核心逻辑先判断两块内存是否重叠如果 dest src从后向前倒着拷贝字节防止源数据被提前覆盖如果 dest src从前向后顺序拷贝memmove可以兼容重叠拷贝memcpy标准不要求处理重叠日常练习尽量区分两者使用场景。3. memset 内存设置按字节填充内存值常用于数组清零易错第二个参数是单字节数值不要直接填充int大数容易出现意料之外的值。补充strerror用于返回错误码对应的文字描述。二、结构体 struct自引用结构体结构体内部包含指向自身类型的结构体指针链表节点就是典型用法。struct node{struct node* next;};typedef重命名结构体类型简化书写。访问成员结构体变量 .成员名结构体指针 -成员名。✨结构体内存对齐规则高频考点第一个成员放在偏移量为0的地址处后面每个成员对齐到自身大小与默认对齐数之间较小值的整数倍地址整体结构体大小是结构体最大对齐数的整数倍对齐本质牺牲一点内存空间换取CPU读取内存的速度属于空间换时间。三、共用体 union、枚举 enum、typedef共用体联合体 union大小等于内部占用空间最大成员的大小所有成员共用同一块内存修改一个成员的值其余成员数据会被覆盖。枚举 enum把一组整型常量打包起名默认从0依次自增可以手动指定枚举常量的数值。typedef 类型重命名给已有类型起别名简化长类型名书写结构体搭配typedef使用非常频繁。四、文件基础操作FILE* fp文件指针用来标记操作的文件流fopen()打开文件fprintf()向文件写入数据fclose()关闭文件用完文件一定要关闭避免资源泄漏。五、学习小结这一段知识点偏向底层内存逻辑不再只关注表层语法。内存重叠拷贝、结构体内存对齐是很容易理解模糊的地方手写代码调试才能把抽象的内存变化看懂。全部练习代码存放在仓库后续继续更新C语言收尾练习准备过渡单片机学习。仓库链接https://gitcode.com/gcw_RyL6LF93/study-c-languague.git

相关新闻

RimSort:让上百个环世界MOD有序运行的智能管理解决方案

RimSort:让上百个环世界MOD有序运行的智能管理解决方案

RimSort:让上百个环世界MOD有序运行的智能管理解决方案 【免费下载链接】RimSort RimSort is an open source mod manager for the video game RimWorld. There is support for Linux, Mac, and Windows, built from the ground up to be a reliable, community-man…

2026/8/6 2:12:54 阅读更多 →
2026年「AI搜索优化服务商推荐」动向:确定性出稿与数据白盒成关键

2026年「AI搜索优化服务商推荐」动向:确定性出稿与数据白盒成关键

2026年,AI搜索优化服务商推荐领域出现新动态:昊GEO优化系统(ForesightNext)推出基于14维知识库的确定性出稿与白盒数据交付方案,面向企业客户落地GEO标准化服务。其自研AIV Monitor监测系统已直连豆包、Kimi、DeepSeek等六大主流AI平台&#…

2026/8/6 2:12:54 阅读更多 →
3步解锁苹果字体:PingFangSC让Windows也能拥有Mac级中文体验

3步解锁苹果字体:PingFangSC让Windows也能拥有Mac级中文体验

3步解锁苹果字体:PingFangSC让Windows也能拥有Mac级中文体验 【免费下载链接】PingFangSC PingFangSC字体包文件、苹果平方字体文件,包含ttf和woff2格式 项目地址: https://gitcode.com/gh_mirrors/pi/PingFangSC 你是否曾经羡慕过Mac电脑上那优雅…

2026/8/6 2:12:54 阅读更多 →

最新新闻

Cadence Virtuoso physConfig:芯片版图层次化管理的核心枢纽

Cadence Virtuoso physConfig:芯片版图层次化管理的核心枢纽

1. 项目概述:从电路到硅片的关键一步 在芯片设计的漫长流程中,从电路图到最终可以交付给晶圆厂生产的物理版图,中间隔着一道至关重要的工序——版图设计。而 physConfig 这个关键词,在 Cadence Virtuoso IC618 这个行业标准工具…

2026/8/7 5:15:01 阅读更多 →
会调模型API的人一抓一大把,为什么项目上线时总有人被权限和日志卡死?

会调模型API的人一抓一大把,为什么项目上线时总有人被权限和日志卡死?

如果你正准备往大模型方向转,《计算机专业就业为什么越规划越焦虑?问题可能不在路线》这类问题别只看热度。更重要的是判断自己该补哪块能力,以及怎么证明你真的会。摘要上周参加了一个内部需求评审,对面坐的是两个大三学生&#…

2026/8/7 5:15:01 阅读更多 →
Demo跑通了却上不了线?大模型就业的真正门槛在权限与日志

Demo跑通了却上不了线?大模型就业的真正门槛在权限与日志

如果你正准备往大模型方向转,《别急着重做AI大模型就业,先看岗位到底在筛什么》这类问题别只看热度。更重要的是判断自己该补哪块能力,以及怎么证明你真的会。摘要摘要:很多人学大模型停留在调API、跑Demo阶段,但企业真…

2026/8/7 5:15:00 阅读更多 →
2024大厂面试必考:多线程并发编程核心原理与实战指南

2024大厂面试必考:多线程并发编程核心原理与实战指南

1. 面试官视角:为什么多线程是必考项?如果你最近在准备2024年的技术面试,尤其是瞄准那些一线大厂,那么“多线程”这个主题,你大概率是绕不过去的。无论你是应聘后端开发、客户端开发,还是大数据、中间件等岗…

2026/8/7 5:15:00 阅读更多 →
Linux系统挂载镜像与配置本地YUM源:从原理到实战详解

Linux系统挂载镜像与配置本地YUM源:从原理到实战详解

1. 项目概述:为什么我们需要挂载镜像与配置本地源?在Linux系统运维和开发工作中,尤其是面对CentOS、RHEL、Fedora这类基于RPM包管理的发行版,yum(或dnf)是我们安装软件、解决依赖的“左膀右臂”。默认情况下…

2026/8/7 5:15:00 阅读更多 →
Unity GLTFUtility终极安装指南:3分钟解决模型导入难题

Unity GLTFUtility终极安装指南:3分钟解决模型导入难题

1. 项目概述:为什么GLTFUtility是Unity开发者的“模型快递员”如果你在Unity里折腾过3D模型导入,尤其是从Blender、Maya或者各种在线资源库下载的.glb/.gltf文件,那你一定对那个漫长的等待、材质丢失、缩放诡异或者干脆导入失败的过程记忆犹新…

2026/8/7 5:14:00 阅读更多 →

日新闻

为什么scrcpy成为Android投屏的终极解决方案:完整实战指南

为什么scrcpy成为Android投屏的终极解决方案:完整实战指南

为什么scrcpy成为Android投屏的终极解决方案:完整实战指南 【免费下载链接】scrcpy Display and control your Android device 项目地址: https://gitcode.com/GitHub_Trending/sc/scrcpy 想要将Android手机屏幕完美投射到电脑上,享受大屏操作的自…

2026/8/7 0:00:19 阅读更多 →
如何在5分钟内掌握Tom Select:打造现代化表单选择器的终极指南

如何在5分钟内掌握Tom Select:打造现代化表单选择器的终极指南

如何在5分钟内掌握Tom Select:打造现代化表单选择器的终极指南 【免费下载链接】tom-select Tom Select is a lightweight (~16kb gzipped) hybrid of a textbox and select box. Forked from selectize.js to provide a framework agnostic autocomplete widget wi…

2026/8/7 0:00:19 阅读更多 →
5分钟快速上手:NSZ压缩工具终极指南,轻松管理Switch游戏文件

5分钟快速上手:NSZ压缩工具终极指南,轻松管理Switch游戏文件

5分钟快速上手:NSZ压缩工具终极指南,轻松管理Switch游戏文件 【免费下载链接】nsz NSZ - Homebrew compatible NSP/XCI compressor/decompressor 项目地址: https://gitcode.com/gh_mirrors/ns/nsz 你是否在为Nintendo Switch游戏文件占用大量存储…

2026/8/7 0:00:19 阅读更多 →

周新闻

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

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

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

2026/8/6 22:02:27 阅读更多 →
基于Springboot的企业门户网站(源码+LW+调试文档+讲解)

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

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

2026/8/6 22:02:27 阅读更多 →
MATLAB xcorr函数详解:从互相关原理到四大实战应用

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

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

2026/8/6 22:02:27 阅读更多 →

月新闻

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

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

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

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

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

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

2026/8/6 22:02:28 阅读更多 →
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/5 23:46:51 阅读更多 →