自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(18)
  • 收藏
  • 关注

原创 C语言学习笔记(十七):文件操作

磁盘(硬盘)上的文件就是文件。从功能角度操作函数打开文件fopen关闭文件fclose读字符fgetc写字符fputc读字符串fgets写字符串fputs格式化读fscanf格式化写fprintf二进制读fread二进制写fwrite判断文件末尾feof判断错误ferror。

2026-10-02 21:50:22 305

原创 C语言学习笔记(十六):联合体和枚举

类型关键字特点使用场景联合体union所有成员共用同一块内存,节省空间多个成员不会同时使用,需要节省内存时枚举enum给整型常量起有意义的名字,可读性强状态码、类型码、选项列表等联合体:共用内存,大小为最大成员大小(并考虑对齐)。枚举:一一列举,默认从0递增,可赋初值,比#define更安全。

2026-09-18 15:52:20 409

原创 C语言学习笔记(十五):内存函数

memset适合把一块内存按字节// 全部清零,正确!memcmp和strcmpstrcmp只能比较字符串,遇到'\0'结束。memcmp可以比较任意内存块,必须指定比较长度,遇到'\0'不会停。如果要比较结构体或二进制数据,用memcmp非常方便。函数功能是否处理重叠单位memcpy内存块拷贝不处理字节memmove内存块拷贝处理字节memset内存块设置字节memcmp内存块比较字节。

2026-09-17 12:33:53 170

原创 C语言学习笔记(十四):字符和字符串函数

类别函数功能字符分类islowerisupperisdigitisalpha等判断字符类型字符转换touppertolower大小写转换长度strlen求字符串长度拷贝strcpystrncpy字符串拷贝(strncpy需注意手动补'\0'追加strcatstrncat字符串追加(strncat更安全)比较strcmpstrncmp字符串比较(推荐strncmp格式化输出sprintfsnprintf格式化数据写入字符串(推荐snprintf格式化输入sscanf从字符串解析数据查找strstr。

2026-09-08 16:59:18 175

原创 C语言学习笔记(十三):指针的最佳实践

序号最佳实践核心要点1永远初始化指针定义时赋值为NULL或有效地址,避免野指针2释放后置NULLfree(ptr);ptr = NULL;避免悬空指针3使用前检查非空if防御外部异常,assert捕捉内部逻辑错误4const保护数据const在左保护内容,在右保护指针本身5谁申请谁释放明确内存所有权,避免内存泄漏6别越界数组/动态内存访问必须在合法边界内7传递长度信息数组传参时,额外传递元素个数8不返回栈地址局部变量的地址在函数返回后失效9typedef简化函数指针。

2026-09-04 09:45:08 307

原创 C语言学习笔记(十二):指针和函数

概念含义示例函数指针存放函数地址的指针函数指针数组存放函数指针的数组转移表用函数指针数组替代 switch-case计算器的优雅实现回调函数通过函数指针调用的函数qsort的比较函数qsort万能排序函数,可排序任意类型typedef给复杂类型起别名。

2026-09-02 17:42:49 157

原创 C语言学习笔记(十一):指针和动态内存管理

函数功能是否初始化失败返回申请size字节❌ 不初始化NULL申请num*size字节✅ 全初始化为 0NULL调整内存大小不初始化(新空间不保证)NULLfree(ptr)释放动态内存最佳实践malloccallocrealloc后必须检查返回值是否为NULL。free后必须将指针置为NULL,避免悬空指针。用realloc时先用临时变量接收返回值,避免失败时丢失原指针。谁申请,谁释放,避免内存泄漏。柔性数组是 C99 的特性,可以一次分配、一次释放,提高代码可维护性。

2026-08-28 17:06:23 207

原创 C语言学习笔记(十):指针和数组

概念含义示例数组名和&arrarr→int*数组指针指向数组的指针指针数组存放指针的数组int* p[10]一维数组传参传递首元素地址或二维数组传参传递第一行地址(一维数组地址)指针数组模拟二维数组用指针数组存放多个一维数组的地址。

2026-08-25 10:25:36 320

原创 C语言学习笔记(九):编译和链接

阶段输入输出核心工作预处理.c文件.i文件处理指令,展开宏,插入头文件编译.i文件.s文件词法分析、语法分析、语义分析、生成汇编汇编.s文件.o.obj汇编指令 → 机器指令(二进制)链接多个.o+ 库可执行文件地址分配、符号决议、重定位运行可执行文件程序输出加载到内存,执行指令,管理堆栈。

2026-08-20 10:19:58 342

原创 C语言学习笔记(八):结构体进阶

嵌套结构体:结构体里面可以套结构体,用一层层访问。自引用:结构体内部用指针指向同类型结构体,是链表的基础。typedef:给结构体起别名,让代码更简洁。匿名结构体:没有名字的结构体,只能使用一次,不推荐使用。内存对齐:结构体成员在内存中不是紧密排列的,会为了CPU访问效率而填充字节。对齐规则:每个成员对齐到对齐数的整数倍,总大小为最大对齐数的整数倍。节省空间的技巧:将占用空间小的成员集中在一起。修改对齐数:使用可以修改默认对齐数。

2026-08-16 18:39:33 411

原创 C语言学习笔记(七):结构体

方式1:在声明类型时顺便定义变量(全局变量)struct Stuint age;// 全局结构体变量方式2:先声明类型,再单独定义变量struct Stuint age;// 全局变量int main()// 局部变量return 0;生活类比结构体类型(struct Stu)就像建筑设计图纸,描述了房子的结构和布局。结构体变量(s1s2)就像根据图纸建出来的真实房子,住在里面的是具体数据。结构体是C语言中用于组合不同类型数据的自定义类型。声明结构体类型时用。

2026-08-16 09:59:07 163

原创 C语言学习笔记(六):指针

地址是一个数值,有时需要存储起来以便后续使用,这时就可以放在指针变量中。// pa是一个指针变量,存放a的地址return 0;int*表示pa是一个指针变量,指向int类型的数据。如果暂时不知道指向哪里,可以初始化为NULL(空指针),表示不指向任何有效内存。// 安全初始化如果指针变量是局部的且未初始化,它的值是随机的(野指针),使用它会导致非法访问,程序崩溃。指针就是地址,指针变量存放地址。取地址,解引用,通过地址间接访问变量。

2026-08-11 09:34:21 175

原创 C语言学习笔记(五):函数递归

递归是一种编程技术,指的是一个函数在其定义内部调用自身。最简单的递归程序int main()main();// main函数自己调用自己return 0;这个程序会一直打印"hehe",直到程序崩溃。因为它是死递归,没有终止条件,最终会导致栈溢出。生活类比俄罗斯套娃:打开一个大娃娃,里面还有一个小娃娃,再打开还有更小的……镜子中的镜子:两面镜子对着照,里面会出现无数层影像把一个大型复杂问题,层层转化为一个与原问题相似、但规模较小的子问题来求解,直到子问题不能再拆分,递归就结束了(大事化小)。

2026-08-08 10:10:14 172

原创 C语言学习笔记(四):扫雷

整个代码约 150 行,逻辑清晰,非常适合作为 C 语言初学者的综合练习。如果你能完全理解并自己重写一遍,那么数组、函数、指针(后续扩展)等知识点都会得到巩固,但是这只是最基本的扫雷,真正的扫雷还需要递归,后续可以用各种智能体来改进成带界面的真正的扫雷。

2026-08-05 18:40:06 355

原创 C语言学习笔记(三):函数

在C语言中,函数就是一段被包装好的、可以重复使用的代码块,用于完成一个特定的任务。数学类比:就像数学中的函数y = kx + b,给定一个x,经过计算得到一个y。编程中的角色:一个完整的C语言程序就是由若干个函数组合而成的。这就像拼乐高玩具,每个零件(函数)各司其职,组合在一起就变成了完整的作品(程序)。使用函数的两大好处代码复用:避免重复造轮子,写一次,用N次。分而治之:把复杂的大问题拆分成若干个小问题,用函数逐个解决,让程序结构清晰。库函数是别人的,自定义函数才是你自己的核心能力。定义。

2026-08-03 18:05:59 155

原创 C语言学习笔记(二):数组

数组本质上就是一个连续存放的"盒子队列",每个盒子大小相同,排成一排,通过编号(下标)就可以直接找到任何一个盒子。最近在学函数之后还要做一个扫雷的案例,先把数组给憋出来了,加油!

2026-07-31 10:36:13 198

原创 C语言学习笔记(一):分支与循环

分支和循环是C语言最基础也是最核心的语法,学完之后我打算还尝试写一些简单的题目,比如分数之和,找最大公约数等等,我会全都发到我的git()上,我也会在牛客网上找简单的题目练习,只要多练就能学会,加油!

2026-07-25 17:08:27 170

原创 第一篇博客

我是一名大专大二学生,专业是信息安全,正在准备专升本而开始学习c语言,并且为了未来的考研数据结构课程,励志要好好学习编程,学习编程的目标就是考上一个好的本科并且运用在未来的工作当中,学习的话就是每天看网课,私下敲代码,多敲多练,我打算一周投入20-30个小时在c语言上,剩下时间还要学习其他课,未来想进入奇安信,加油!

2026-07-17 19:31:08 27

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除