- 博客(36)
- 收藏
- 关注
原创 【深入详解】函数栈帧的创建与销毁:寄存器、压栈、出栈、调用、回收空间
在C语言中,函数栈帧是指在函数调用过程中,在内存栈中为该函数分配的一块空间,用于存储函数的局部变量,参数,返回地址等信息。栈帧的结构:用于存放调用函数时传递给被调用函数的参数;记录函数调用结束后要返回的指令地址,以便函数执行完毕后能正确回到调用点继续执行;存储函数内部定义的局部变量;ebp指向当前栈帧的底部,esp指向当前栈帧的顶部,通过这两个指针来维护函数栈帧。还记得我们开篇的这几个问题吗?1、局部变量是如何创建的?(1)首先为函数分配好栈帧空间;
2025-06-03 11:38:38
1080
2
原创 【深入详解】数据在内存中的存储:整数在内存中的存储、大小端字节序和字节序判断、浮点数在内存中的存储
⭐️人生格言:为天地立心,为生民立命,为往圣继绝学,为万世开太平前言:前面几篇文章介绍了c语言的一些知识,包括循环、数组、函数、VS实用调试技巧、函数递归、操作符、指针、字符函数和字符串函数、C语言内存函数、结构体、联合和枚举、动态内存管理、文件操作、编译和链接、预处理等,在这篇文章中,我将开始介绍C语言内存函数的一些重要知识点!对C语言内存函数感兴趣的友友们可以在评论区一起交流学习!
2025-06-02 03:56:40
1232
2
原创 【深入详解】C语言内存函数:memcpy、memmove的使用和模拟实现,memset、memcmp函数的使用
当有一块内存空间需要设置内容的时候,就可以使用memset函数,值得注意的是memset函数对内存单元的设置是以字节为单位的。(1)如果要比较2块内存单元的数据的大小,可以使用memcmp函数,这个函数的特点就是可以指定比较长度;(2)memcmp函数是通过返回值告知大小关系的。
2025-06-01 11:00:02
1060
原创 字符函数和字符串函数(二):strncpy、strncat、strncmp函数的使用、strstr的使用和模拟实现、strtok函数的使用、strerror函数的使用
目录一、 strncpy、strncat、strncmp函数的使用(一)strncpy1、代码演示: 2、比较strcpy函数和strncpy函数 (二) strncat1、代码演示:2、strcat和strncat对比(三)strncmp1、代码演示: 2、strcmp和strncmp比较 二、strstr的使用和模拟实现(一)使用 (二)代码演示(三)模拟实现三、strtok函数的使用(一)代码演示:(二)注意事项四、strerror函数的使用(一) 代码演示 (二)perror结语前言:前面几篇文章介
2025-05-31 20:30:22
1133
原创 预处理深入详解:预定义符号、宏、命名约定、命令行定义、条件编译、头文件的包含
C语言设置了一些预定义符号,可以直接使用,预定义符号也是在预处理期间处理的。都有哪些预定义符号呢?__FILE__//进行编译的源文件__LINE__//文件当前的行号__DATE__//文件被编译的日期__TIME__//文件被编译的时间__STDC__//如果编译器遵循ANSI C,其值为1,否则未定义int main()return 0;//register - 寄存器int main()return 0;
2025-05-30 23:19:02
1439
2
原创 深入详解编译与链接:翻译环境和运行环境,翻译环境:预编译+编译+汇编+链接,运行环境
前面几篇文章介绍了c语言的一些知识,包括循环、数组、函数、VS实用调试技巧、函数递归、操作符、指针、字符函数和字符串函数、C语言内存函数、数据在内存中的存储、结构体、联合和枚举、动态内存管理、文件操作等,在这篇文章中,我将开始介绍编译和链接的一些重要知识点!对编译和链接感兴趣的友友们可以在评论区一起交流学习!
2025-05-29 17:52:23
886
原创 【掌握文件操作】(下):文件的顺序读写、文件的随机读写、文件读取结束的判定、文件缓冲区
ANSI C标准采用“缓冲文件系统”处理数据文件的,所谓缓冲文件系统是指系统自动地在内存中为程序中每一个正在使用的文件开辟一块“文件缓冲区”。从内存向磁盘输出数据会先送到内存中的缓冲区,装满缓冲区之后才会一起送到磁盘上。如果从磁盘向计算机读入数据,则从磁盘文件中读取数据输入到内存缓冲区(充满缓冲区),然后再从缓冲区逐个将数据送到程序数据区(程序变量等)。缓冲区大小根据C编译系统决定。
2025-05-28 23:29:45
907
原创 【掌握文件操作】(上):二进制文件和文本文件、文件的打开和关闭、文件的顺序读写
⭐️人生格言:为天地立心,为生民立命,为往圣继绝学,为万世开太平前言:前面几篇文章介绍了c语言的一些知识,包括循环、数组、函数、VS实用调试技巧、函数递归、操作符、指针、字符函数和字符串函数、C语言内存函数、数据在内存中的存储、结构体、联合和枚举、动态内存管理等,在这篇文章中,我将开始介绍文件操作的一些重要知识点!对文件操作感兴趣的友友们可以在评论区一起交流学习!
2025-05-26 18:08:55
1495
原创 【动态内存管理】深入详解:malloc和free、calloc和realloc、常见的动态内存的错误、柔性数组、总结C/C++中程序内存区域划分
1.栈区(stack):在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结束时这些存储单元自动被释放。栈内存分配运算内置于处理器的指令集中,效率很高,但是分配的内 存容量有限。栈区主要存放运行函数而分配的局部变量、函数参数、返回数据、返回地址等。2.堆区(heap):一般由程序员分配释放,若程序员不释放,程序结束时可能由OS(操作系统) 回收。分配方式类似于链表。3.数据段(静态区):(static)存放全局变量、静态数据。程序结束后由系统释放。4.
2025-05-25 08:47:28
1133
原创 字符函数和字符串函数(一):字符分类函数、字符转换函数、strlen的使用和模拟实现、strcpy的使用和模拟实现、strcat的使用和模拟实现、strcmp的使用和模拟实现
⭐️人生格言:为天地立心,为生民立命,为往圣继绝学,为万世开太平前言:前面几篇文章介绍了c语言的一些知识,包括循环、数组、函数、VS实用调试技巧、函数递归、操作符、指针等,在这篇文章中,我将介绍字符函数和字符串函数的一些重要知识点!对字符函数和字符串函数感兴趣的友友们可以在评论区一起交流学习!
2025-05-24 08:40:01
854
原创 【自定义类型:结构体】:类型声明、结构体变量的创建与初始化、内存对齐、传参、位段
位段的声明和结构体类型类似,区别在两点:1、位段的成员类型必须是int、unsigened int或者sigede int,在C99标准中,位段成员的类型也可以选择其他类型;2、位段的成员后面有一个冒号和一个数字。int _b : 5;这里的2、5、10、30表示这个成员要占用的比特位的数量,也就是说:数字表示这个成员要占用的比特位的数量这里A就是一个位段类型。
2025-05-23 00:07:09
857
原创 【详解自定义类型:联合和枚举】:联合体类型的声明、特点、大小的计算,枚举类型的声明、优点和使用
前面几篇文章介绍了c语言的一些知识,包括循环、数组、函数、VS实用调试技巧、函数递归、操作符、指针、字符函数和字符串函数、C语言内存函数、数据在内存中的存储、结构体等,在这篇文章中,我将开始介绍联合和枚举的一些重要知识点!对联合和枚举感兴趣的友友们可以在评论区一起交流学习!
2025-05-22 18:09:49
1424
2
原创 C语言指针深入详解(六):sizeof和strlen的对比,【题解】数组和指针笔试题解析、指针运算笔试题解析
本文主要介绍了sizeof和strlen的对比,【题解】数组和指针笔试题解析、指针运算笔试题解析
2025-05-21 12:58:49
1538
原创 C语言指针深入详解(五):回调函数、qsort函数
C语言指针深入详解(一):内存和地址、指针变量和地址、指针变量类型的意义、指针运算C语言指针深入详解(二):const修饰指针、野指针、assert断言、指针的使用和传址调用C语言指针深入详解(三):数组名理解、指针访问数组、一维数组传参的本质、冒泡排序、二级指针、指针数组、指针数组模拟二维数组C语言指针深入详解(四):指针变量、二维数组传参的本质、函数指针数组、转移表。
2025-05-20 23:46:49
1153
原创 C语言指针深入详解(四):指针变量、二维数组传参的本质、函数指针数组、转移表
前面几篇文章介绍了c语言的一些知识,包括循环、数组、函数、VS实用调试技巧、函数递归、操作符等,在这篇文章中,我将继续介绍指针的一些重要知识点!由于指针的内容较多,博主将会分为六篇博客介绍,这是第四篇啦!对指针感兴趣的友友们可以在评论区一起交流学习!
2025-05-20 13:48:24
1430
原创 C语言指针深入详解(三):数组名理解、指针访问数组、一维数组传参的本质、冒泡排序、二级指针、指针数组、指针数组模拟二维数组
目录一、 数组名理解二、指针访问数组三、一维数组传参的本质四、 冒泡排序 五、二级指针六、指针数组七、指针数组模拟二维数组结语🔥个人主页:艾莉丝努力练剑🍓专栏传送门:《C语言》🍉学习方向:C/C++方向⭐️人生格言:为天地立心,为生民立命,为往圣继绝学,为万世开太平 前言:前面几篇文章介绍了c语言的一些知识,包括循环、数组、函数、VS实用调试技巧、函数递归、操作符等,在这篇文章中,我将继续介绍指针的一些重要知识点!由于指针的内容较多,博主将会分为六篇博客介绍,这是第三篇!对指针感兴趣的友友们可以在评论
2025-05-19 13:15:40
1252
2
原创 C语言指针深入详解(二):const修饰指针、野指针、assert断言、指针的使用和传址调用
C语言指针深入详解(一):内存和地址、指针变量和地址、指针变量类型的意义、指针运算。
2025-05-18 17:49:06
1244
4
原创 C语言指针深入详解(一):内存和地址、指针变量和地址、指针变量类型的意义、指针运算
掌握操作符(一):操作符的分类,二进制和进制转换,原码、反码、补码,移位操作符,位操作符:&、| 、^ 、~,单目操作符,逗号表达式,下标访问[ ]、函数调用()掌握操作符(二):结构成员访问操作符,操作符的属性:优先级、结合性,表达式求值。
2025-05-17 20:59:33
1261
2
原创 掌握操作符(二):结构成员访问操作符,操作符的属性:优先级、结合性,表达式求值
变量的定义int x;int y;}p1;//声明类型的同时定义变量p1//定义结构体变量p2初始化struct Stu //类型声明//名字int age;//年龄//初始化//指定顺序初始化int data;//结构体嵌套初始化//结构体嵌套初始化即使有了操作符的优先级和结合性,我们写出的表达式依然有可能不能通过操作符的属性确定唯一的计算路径,那这个表达式就是存在潜在风险的,建议不要写出特别复杂的表达式。
2025-05-16 10:58:24
1211
1
原创 掌握操作符(一):操作符的分类,二进制和进制转换,原码、反码、补码,移位操作符,位操作符:&、| 、^ 、~,单目操作符,逗号表达式,下标访问[ ]、函数调用()
掌握分支与循环(一):if语句、三种操作符、switch语句掌握分支循环(二):三种循环、break和continue语句、循环的嵌套以及 goto 语句掌握数组:一维数组、二维数组、变长数组及简单的二分查找掌握函数(一):库函数与自定义函数、形参与实参、return语句掌握函数(二)嵌套使用与链式访问以及函数的声明与定义。
2025-05-15 00:04:39
838
原创 【掌握递归】函数递归思想的形成及其应用
【掌握调试技巧】VS实用调试技巧详解掌握函数(二)嵌套使用与链式访问以及函数的声明与定义掌握函数(一):库函数与自定义函数、形参与实参、return语句掌握数组:一维数组、二维数组、变长数组及简单的二分查找掌握分支循环(二):三种循环、break和continue语句、循环的嵌套以及 goto 语句掌握分支与循环(一):if语句、三种操作符、switch语句本篇文章就到此结束了,本文为友友们分享了一些函数递归的一些重要知识点,如果友友们有补充的话欢迎在评论区留言交流!
2025-05-14 08:05:24
1280
原创 【掌握调试技巧】VS实用调试技巧详解
VS2022的常见快捷键整理掌握函数(一):库函数与自定义函数、形参与实参、return语句掌握函数(二)嵌套使用与链式访问以及函数的声明与定义t=P1C7VS更多快捷键了解http://blog.csdn.net/mrlisky/article/details/72622009。
2025-05-13 09:37:50
900
原创 掌握函数(二)嵌套使用与链式访问以及函数的声明与定义
一般我们在使用函数的时候,直接将函数写出来就使用了。打个比方:我们要判断某一年年是否为闰年?//判断⼀年是不是闰年return 1;if(r == 1)printf("闰年\n");elseprintf("⾮闰年\n");return 0;上面代码中橙色的部分是函数的定义,绿色的部分是函数的调用。这种场景下是函数的定义在函数调用之前,没啥问题。
2025-05-12 12:02:36
1280
原创 掌握函数(一):库函数与自定义函数、形参与实参、return语句
C语言标准中规定了C语言的各种语法规则,C语言并不提供库函数;C语言的国际标准ANSIC规定了一些常用的函数的标准,被称为标准库,那不同的编译器厂商根据ANSI提供的C语言标准就给出了一系列函数的实现。这些函数就被称为库函数。之前介绍的printf、scanf就都是库函数,库函数也是函数,不过这些函数已经是现成的,我们只要学会就能直接使用了。好处:有了库函数,一些常见的功能就不需要程序员自己实现了,一定程度提升了效率;同时库函数在质量和执行效率上都更有保证。
2025-05-11 16:16:58
1083
2
原创 【综合运用】关机程序、猜数字小游戏以及扫雷游戏基础版
关机程序的比较简单,这里放一张图大家就能明白啦:需要注意的点已经标注在代码的注释部分了——扫雷在科技历史上也扮演了相似的角色。这个基于数字的逻辑谜题最早来自20世纪六七十年代,当时Jerimac Ratliff推出的名为“Cube”的游戏已经非常受人欢迎。几十年后的1992年,扫雷游戏被加入了Windows3.1,这并不是为了展示Windows是游戏操作系统专家,而是为了训练用户的鼠标左右键操作能力,让这些动作变得非常自然,并培养鼠标移动的速度和准确性。
2025-05-11 10:31:48
1013
原创 sizeof计算数组元素个数、strlen函数相关的一些知识点以及两者的区别
strlen是一个求字符串长度的一个库函数,注意只是求字符串长度的一个函数,只针对字符串,不能求其他类型变量的长度!它在使用求解字符串长度的时候,从参数给定的位置一直向后寻找’\0’,统计’\0’之前出现字符的个数。它的头文件是string.h,在使用的时候需要对它进行包含头文件。这就是本篇的全部内容了,本文主要介绍了sizeof计算数组元素个数、strlen函数相关的一些知识点以及两者的区别,如果友友们有什么想法,可以在评论区交流一下。
2025-05-10 12:11:31
1099
2
原创 掌握数组:一维数组、二维数组、变长数组及简单的二分查找
目录数组的概念一、一维数组(一)一维数组的创建和初始化1、数组创建2、数组的初始化 3、数组的类型(二)一维数组的使用1、下标2、数组元素的打印3、数组的输入(三)一维数组在内存中的存储二、二维数组(一)二维数组的创建(二)二维数组的初始化1、不完全初始化2、完全初始化3、按照行初始化4、初始化时省略行,但是不能省略列(三)二维数组的使用1、下标2、二维数组的输入和输出(四)二维数组在内存中的存储三、变长数组C99中的变长数组四、二分查找 前言:前两篇文章已经介绍了分支循环相关的一些知识点,本文将继续为大
2025-05-09 17:45:15
1346
原创 掌握分支循环(二):三种循环、break和continue语句、循环的嵌套以及 goto 语句
上篇博文分享了分支与循环相关的知识点,有兴趣的友友们可以去了解一下!传送门——
2025-05-08 16:36:02
1683
原创 掌握分支与循环(一):if语句、三种操作符、switch语句
前言:上篇博文分享了VS2022是如何进行监视功能的,有兴趣的友友们可以去了解一下!传送门——这篇文章将会分享分支与循环相关的知识点,因为分支循环这一板块知识点很多,我将分为两篇博客来介绍,希望能对友友们有所帮助!我们一起进步!
2025-05-06 17:11:12
1577
3
原创 单目操作符++、--的前置后置知识点总结,printf函数的一些知识点
在上篇博客中我分享了变量、算术操作符、赋值操作符:=和复合赋值、单目操作符以及强制类型转换的知识;今天这篇文章我将接着分享单目操作符++与--的前置后置、printf和scanf函数等知识点;
2025-04-30 23:05:49
1083
2
原创 变量的一些知识点整理(续)、算术操作符、赋值操作符:=和复合赋值、单目操作符以及强制类型转换的知识点总结
首先要声明的一点是,操作符就是运算符,只是翻译不同,意思一样。接下来我们简单介绍一下什么是算术操作符,我们在写代码时,必然会涉及到计算,C语言中为了方便计算,提供了一系列操作符,其中有一组操作符叫算术操作符,分别是: +、 - 、* 、/ 、% ,这些操作符都是双目操作符。+ 和 -(1)+ 和 - 用来完成加法和减法。(2)+和 - 都是有2个操作数的,位于操作符两端的就是它们的操作数,这种操作符也叫双目操作符。接下来是代码展示——int main()return 0;
2025-04-29 19:54:51
1142
4
原创 VS2022的常见快捷键整理
9.全部保存:Ctrl+Shift+S。2.新建项目:Ctrl+Shift键。8.保存单个文件:Ctrl+S。23.复制一行:Ctrl+D。3.新建文件:Ctrl+N。
2025-04-28 18:14:35
1121
4
原创 C语言常见概念、数据类型以及变量的一些重要知识点总结
文件名后缀非常重要,C语言把 .c 为后缀的文件称为源文件,把 .h 为后缀的文件称为头文件,C++语言则把.cpp为后缀的文件称为源文件,在创建新的空项目后要修改后缀名,这里默认的文件后缀是.cpp,即C plus plus,是C++的另一种书写形式,默认为C++的源文件,需手动修改为.c后缀,点击【添加】,即可编写代码了!通俗地讲,库函数就是C语言仓库里有的、直接能用的,注意,库函数使用需要包含头文件,以printf库函数为例,printf库函数需要包含的头文件如下——
2025-04-27 15:37:37
888
3
原创 C语言学习的第一篇blog
时间规划:希望尽可能做到一周高效学习14小时,用于C语言的学习;随着学习的深入,延长高效学习的时间,坚持每周更新一次博客,至少坚持两周更新一次,每天维护自己的gitee。目标:经过系统的C语言和数据结构学习,能够熟练掌握C语言以及数据结构的知识,提升自己的编程能力,为之后学习C++或Java语言夯实基础,参加蓝桥杯争取拿下省二至省三。计划:在C语言学完之后,去学习了解数据结构算法,备战蓝桥杯竞赛,后续将继续学习C++的知识,不断提升自己的编程能力。专业:通信工程(移动通信方向)二、学习编程的目标以及计划。
2025-04-26 13:06:25
234
6
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人