- 博客(18)
- 收藏
- 关注
原创 STM32:LED共阴/共阳连接与GPIO控制逻辑的关系,如何实现电平转换
整理了LED共阴/共阳连接与GPIO控制逻辑的关系相关知识,深度分析如何实现电平转换
2026-01-22 15:43:31
530
原创 STM32 标准外设库中关于 GPIO(通用输入输出) 模块的函数声明
整理了STM32 标准外设库中关于 GPIO(通用输入输出) 模块的函数声明
2026-01-20 11:43:09
1113
原创 【C语言】之文件操作详解2(文件的顺序读写操作)
1.前言:目录1.回顾上期2.介绍相关函数2.1单字符输入输出函数(fputc & fgetc)fputc(字符输出函数)fgetc(字符输入函数)2.2字符串输入输出函数(fputs & fgets)fputs(字符串输出函数)fgets(字符串输入函数)2.3.格式化输入输出函数(fscanf & fprintf)fprintf(格式化输出函数)fscanf(格式化输入函数)2.4检测错误函数(feof & ferror)feof(检测文件的结束指示器)ferror(检测文件的错误指示器)2.5二进制输
2025-12-21 20:05:45
1408
原创 【C语言】之文件操作详解1(流,文件信息区,文件缓冲区,文件的打开与关闭)
由于文件操作内容篇幅较大,小编将用3篇博客重头到尾详细介绍,争取让新手小白也能看懂并上手,相关链接我会放在文章的结尾,请关注博主的博客不要错过最新内容哦。
2025-12-20 19:36:18
1525
原创 数据结构的基石之动态内存管理详解
叠个甲这些函数的使用都要包含stdlib.h这个头文件没学习动态内存管理之前,我们已经掌握的内存开辟⽅式有:但是上述的开辟空间的⽅式有两个特点:空间开辟大小是固定的数组在申明的时候,必须指定数组的长度,数组空间⼀旦确定了大小不能调整但是对于空间的需求,不仅仅是上述的情况。有时候我们需要的空间⼤⼩在程序运⾏的时候才能知道,那数组的编译时开辟空间的⽅式就不能满⾜了所以C语⾔引⼊了动态内存开辟,让程序员⾃⼰可以申请和释放空间,就⽐较灵活了C语⾔提供了⼀个动态内存开辟的函数:程序不能只申请空间而不归还操作系统
2025-12-19 12:15:08
1047
4
原创 从汇编底层了解函数栈帧的创建与销毁6500字超详解
我们在写C语言代码的时候,经常会把一个独立的功能抽象为函数,所以C程序是以函数为基本单位的。那函数是如何调用的?函数的返回值又是如何待会的?函数参数是如何传递的?这些问题都和函数栈帧有关系。函数参数和函数返回值临时变量(包括函数的非静态的局部变量以及编译器自动生产的其他临时变量)保存上下文信息(包括在函数调用前后需要保持不变的寄存器)栈 是现代计算机程序里最为重要的概念之一,几乎每一个程序都使用了栈,没有栈就没有函数,没有局部变量,也就没有我们如今看到的所有的计算机语言。
2025-12-17 19:41:07
1670
原创 C语言之数据在内存中的存储4000字超详解
其实超过⼀个字节的数据在内存中存储的时候,就有存储顺序的问题,按照不同的存储顺序,我们分为大端字节序存储和小端字节序存储,下面是具体的概念:大端(存储)模式: 是指数据的低位字节内容保存在内存的⾼地址处,而数据的高位字节内容,保存在内存的低地址处。小端(存储)模式: 是指数据的低位字节内容保存在内存的低地址处,而数据的高位字节内容,保存在内存的高地址处。
2025-12-10 20:48:15
1067
3
原创 C语言内存函数使用和模拟(memcpy,memmove,memset,memcmp)4000字超详解
以上函数的使用均需要引用头文件<string.h>或<memory.h>内容均参考https://legacy.cplusplus.com/目录1.核心要点2.memcpy3.memmove4.memset5.memcmp 接下来我将用一个表格来快速了解这些核心函数,然后我们将深入探讨它们的使用方法、模拟实现以及最佳实践。在深入了解每个函数之前,先明确它们的一些共同要点:字节级操作:这些函数操作的基本单位是字节,不关心内存中存储的具体数据类型。指针:使用 类型的指针可以接收任意类型的内存地址,增强了函数的通
2025-12-08 15:59:47
1513
4
原创 String.h库函数模拟(strlen,strcat,strcmp,strstr),其中介绍strlen3种模拟方式(计数器,指针,递归)
原理图:这里采用暴力模拟方式,使用kmp算法还可以优化,有兴趣可以私下搜一搜。原理图:指针向后移动,每移动1个字节就拷贝一次。第二种(没见过的会觉得很妙)写函数时要思考这几个问题。
2025-12-04 18:15:36
421
4
原创 C语言中传参的本质
ps:很久没更新了,主包正备考四级www,今天为各位看官讲讲传参的本质,给正在学习指针的小伙伴指点迷津,如果有讲的不对的地方,欢迎在评论区留言,好了接下来进入正题因此,在函数内部修改参数的值不会影响原始变量。函数内部可以通过指针来修改原始变量的值。
2025-11-28 20:11:36
7071
1
原创 C语言自增运算结果问题
表达式有3个对i的修改(++i这些修改的顺序没有明确定义不同编译器可能产生不同结果GCC/Clang(常见结果)计算过程可能是:先执行两次++i(i变为3),然后3+3=6,再执行第三次++i(i变为4),最后6+4=10。Visual Studio(可能结果)计算过程可能是:先执行所有++i(i变为4),然后4+4+4=12。
2025-11-05 18:12:50
280
原创 青蛙跳台阶(包含递归,尾递归,迭代3种代码的实现,深度讲解为什么尾递归那么神)
尾递归是指递归调用出现在函数体的最后一步,且返回值直接返回递归调用的结果,没有其他操作的递归形式。
2025-11-04 21:06:28
1209
原创 C语言移位操作符和位操作符详解
:将二进制位向右移动,左侧空位补符号位(有符号数)或0(无符号数):将二进制位向左移动,右侧空位补0。:两位都为1时结果为1,否则为0。:两位中至少有一个为1时结果为1。:两位不同时结果为1,相同时为0。
2025-10-29 21:19:37
193
原创 VS开发环境调试下面的代码会陷入死循环的原因
直接原因for循环的条件i<=12导致了数组越界访问 (arr[10]arr[11]arr[12]根本原因:在特定的内存布局下(i在arr之后声明,且栈从高地址向低地址生长),越界访问arr[12]恰好覆盖了变量i的内存空间,意外地修改了循环变量的值,破坏了循环的逻辑。
2025-10-29 18:28:44
965
原创 C语言分支和循环语句保姆级讲解0基础也能看懂
掌握这些分支和循环语句是C语言编程的基础,它们可以组合使用来解决各种复杂的编程问题。// 跳过i=3时的循环。printf("%d是偶数\n", i);printf("%d是奇数\n", i);// 当i等于5时跳出循环。printf("不及格\n");printf("优秀\n");printf("良好\n");printf("及格\n");printf("及格\n");// 条件为真时执行的代码。// 条件为真时执行的代码。// 条件为假时执行的代码。printf("未成年人\n");
2025-10-25 21:21:01
572
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅