
C语言
文章平均质量分 95
聚焦C语言指针,链表,文件操作等重难点
重生之我是Java开发战士
2024级网络工程学生,利用博客记录日常学习,梦想是成为Java开发工程师。颤抖吧!JVM!
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
【C语言】经典贪吃蛇游戏:从设计到代码全解析
本文介绍了使用C语言在Windows控制台中实现贪吃蛇游戏的核心技术。主要内容包括:1)通过Win32 API控制控制台窗口、光标和键盘输入;2)使用宽字符绘制游戏地图和蛇身;3)采用链表结构管理蛇身节点;4)实现蛇移动、吃食物增长、碰撞检测等核心逻辑。游戏设计中重点关注了坐标系统、数据结构、状态管理以及游戏循环的实现,展示了如何将这些技术组合完成一个完整的控制台游戏开发。原创 2025-08-19 18:03:43 · 1271 阅读 · 7 评论 -
【C语言】深入理解编译与链接过程
链接是一个复杂的过程,它需要把多个目标文件和链接库链接在一起,最终生成可执行程序。、链接底层实现中的空间与地址分配等,如果想要深入了解,可以阅读《程序的自我修养》一书。希望通过今天的讲解,能让你对C语言程序的编译和链接过程有更清晰的认识。翻译环境的核心任务是将源代码转换为可执行的机器指令,它由编译和链接两个大的过程组成,而编译又可以进一步分解为预处理(预编译)、编译、汇编三个步骤。在ANSI C的任何一种实现中,都存在两个不同的环境,它们共同支撑着C语言程序的生命周期。这个地址修正的过程就被叫做重定位。原创 2025-08-07 22:36:26 · 1038 阅读 · 2 评论 -
【C语言】深入理解预处理
C语言预处理是编译前的关键环节,处理以`#`开头的指令。包含预定义符号(如`__FILE__`等,助于调试);`#define`可定义常量与带参宏,宏需注意运算符优先级和副作用参数;宏与函数各有优劣,宏快但难调试,函数可递归;还有`#`(字符串化)、`##`(记号粘合)运算符,`#undef`移除宏定义,命令行定义、条件编译、头文件包含等功能,掌握这些能写出更高效灵活的代码。原创 2025-08-09 22:45:05 · 1250 阅读 · 1 评论 -
【C语言】文件操作全解析
文件操作是C语言编程中的重要技能,掌握它可以让你的程序具备数据持久化能力。本文介绍了文件的基本概念、类型划分、打开关闭、顺序读写、随机读写、结束判定以及缓冲区机制等内容。始终检查文件是否成功打开操作完成后及时关闭文件正确判断文件读取结束的条件理解并合理利用缓冲区机制。原创 2025-08-06 21:21:53 · 1153 阅读 · 0 评论 -
【C语言】动态内存管理详解
本文聚焦 C 语言动态内存管理,先阐述因静态分配局限需动态分配内存,介绍 `malloc`/`free`、`calloc`、`realloc` 函数用法,剖析常见内存错误(如空指针、越界等),分析经典笔试题,讲解柔性数组特性优势,最后说明程序内存区域划分,助掌握动态内存管理关键知识。原创 2025-08-05 20:47:53 · 1168 阅读 · 4 评论 -
【C语言】自定义类型:联合体与枚举
本文解析C语言中联合体和枚举两种自定义类型。联合体成员共用内存,大小为最大成员大小,能节省内存,可用于存储互斥属性、判断机器字节序。枚举定义有限取值集合,常量有默认或自定义值,比#define更具可读性、安全性和可调试性,适合表示状态等。合理使用可提升代码效率与可读性。原创 2025-08-04 22:28:37 · 1228 阅读 · 1 评论 -
【C语言】自定义类型:结构体
本文详细讲解C语言结构体相关知识。首先介绍结构体基本概念,包括声明、变量创建、初始化及成员访问,还有结构体自引用的正确方式。接着阐述结构体内存对齐规则,通过示例分析计算方法,说明对齐原因及修改默认对齐数的方法。还讲解结构体传参的两种方式,推荐传地址以提高效率。最后介绍结构体实现的位段,包括声明、内存分配、跨平台问题、应用场景及注意事项。原创 2025-08-03 18:27:17 · 1259 阅读 · 3 评论 -
【C语言】内存函数与数据在内存中的存储
函数功能特点适用场景memcpy复制内存不处理重叠内存,效率较高非重叠内存的复制memmove复制内存处理重叠内存,安全性高可能重叠的内存复制memset设置内存值按字节操作,用于初始化或填充内存初始化、批量设置值memcmp比较内存按字节比较,返回差值关系任意类型内存的比较符号位:最高位为符号位,0表示正数,1表示负数。数值位:剩余位表示数值大小。正整数:原码、反码、补码完全相同。int a = 5(32位)负整数原码:直接翻译二进制(符号位为1)。原创 2025-08-02 21:41:47 · 1516 阅读 · 1 评论 -
【C语言】字符函数与字符串函数详解
本文详细介绍C语言中字符与字符串处理的库函数。涵盖字符分类函数转换函数,以及strlen、strcpy、strcat、strcmp等字符串函数,还包括带长度限制的strncpy等及strstr、strtok、strerror等函数。阐述各函数功能、使用方法,提供示例及部分函数的模拟实现,助读者掌握这些基础且重要的函数,提升编程效率。原创 2025-08-01 20:21:25 · 1689 阅读 · 2 评论 -
【C语言】深度剖析指针(三):回调机制、通用排序与数组指针逻辑
本文围绕C语言中的回调函数、qsort函数、sizeof与strlen的区别及数组与指针笔试题展开。介绍了回调函数的定义、应用及优势;详解qsort函数的参数、用法、模拟实现;对比sizeof与strlen的特性;通过多个代码示例解析数组与指针相关笔试题,助读者掌握这些关键知识点。原创 2025-07-31 22:32:04 · 954 阅读 · 4 评论 -
【C语言】深度剖析指针(二):指针与数组,字符,函数的深度关联
本文围绕数组与指针的关联展开,解析了数组名的一般含义与特殊情况,以及如何用指针访问数组。阐述了一维和二维数组传参本质,介绍了冒泡排序实现。还讲解了二级指针、指针数组、字符指针、数组指针、函数指针及函数指针数组的定义、初始化、使用及相关应用,如指针数组模拟二维数组、函数指针数组实现转移表简化多分支逻辑等。原创 2025-07-30 23:47:21 · 1722 阅读 · 9 评论 -
【C语言】深度剖析指针(一):内存、地址与指针操作
本文围绕C语言指针展开,先介绍内存基本概念与编址原理,说明内存单元及地址的作用,还有地址总线的功能。接着讲解指针变量相关知识,包括取地址与解引用操作符、指针类型意义及大小。还涉及const修饰指针、指针运算、野指针成因与规避方法,以及assert断言的使用,最后通过实例说明指针的传址调用等应用,全面阐述了指针的核心知识。原创 2025-07-29 21:58:13 · 1370 阅读 · 0 评论 -
【C语言】百行代码实现扫雷游戏(附源码)
本文介绍了扫雷游戏的设计与实现。采用双棋盘设计,包括存储地雷位置的地雷棋盘和展示给玩家的显示棋盘,通过扩大数组尺寸处理边界问题。解析了头文件定义、核心功能实现及主流程控制代码。还给出运行示例,并提出自动展开空白区域、标记地雷、多难度选择等优化方向。原创 2025-07-29 13:39:04 · 1210 阅读 · 4 评论 -
【C语言】深入理解C语言中的函数栈帧:从底层揭秘函数调用机制
函数栈帧(简称"栈帧")是指当一个函数被调用时,在栈上为其分配的一块独立内存区域。每个函数调用都会创建一个对应的栈帧,函数执行结束后,栈帧会被销毁(出栈)。存储函数的参数;保存返回地址(函数执行完后回到调用者的位置);存储函数的局部变量;保存调用者的栈基指针(ebp),以便函数返回时恢复调用者的栈帧;提供临时数据的存储空间(如表达式计算的中间结果)。特性GCC(x86)栈初始化用填充未初始化区域(调试模式)不主动填充,内存值为随机残留安全机制。原创 2025-07-26 13:12:53 · 1663 阅读 · 7 评论 -
【C语言】位操作符详解
详解按位与,按位或,异或,左移,右移等位操作符原创 2025-07-25 20:06:46 · 794 阅读 · 3 评论