![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C语言
文章平均质量分 88
zxctscl
万事试一试
展开
-
【C语言】动态内存管理
结构体、动态内存管理对于后面数据结构的学习是非常重要的,这次来看看动态内存管理,话都不说,正文开始。栈区(stack):在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结束时这些存储单元自动被释放。栈内存分配运算内置于处理器的指令集中,效率很高,但是分配的内存容量有限。栈区主要存放运行函数而分配的局部变量、函数参数、返回数据、返回地址等。堆区(heap):一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收。分配方式类似于链表。原创 2023-12-25 23:15:45 · 1025 阅读 · 4 评论 -
【C语言】递归详解
这次博客内容是与递归有关,递归是学习C语⾔函数绕不开的⼀个话题,那什么是递归呢?接下来正⽂开始。递归其实是一种解决问题的方法,在C语言中,递归就是函数自己调用自己。来看看一个简单的C语言递归代码int main()main();//main函数中⼜调⽤了main函数return 0;上述就是⼀个简单的递归程序,只不过上⾯的递归只是为了演示递归的基本形式,不是为了解决问题,代码最终也会陷⼊死递归,导致栈溢出。把⼀个大型复杂问题层层转化为⼀个与原问题相似,但规模较小的子问题来求解;原创 2023-12-04 22:33:43 · 1895 阅读 · 3 评论 -
【C语言】与文件有关的操作
数据如果存在内存中,当程序退出、断电,数据就丢失了。而数据存在硬盘中,其实就是存储在文件中,数据就不会因为断电、程序退出就丢失了。而想要数据持久化,就需要存在文件中。那怎么操作文件呢?磁盘(硬盘)上的文件是文件。但是在程序设计中,我们⼀般谈的文件有两种:程序文件、数据文件(从文件功能的角度来分类的)。上面说的适用于所有输⼊流一般指适用于标准输入流和其他输入流(如文件输入流);所有输出流一般指适用于标准输出流和其他输出流(如文件输出流)。fgetc:一次只能读取一个字符。原创 2023-12-01 22:40:52 · 964 阅读 · 1 评论 -
【C语言】自定义类型之联合和枚举
link今天来分享另外两种类型:联合和枚举。原创 2023-12-20 21:38:25 · 1094 阅读 · 8 评论 -
【C语言】结构体
在C语言中,有两种类型,一种是内置类型,可以直接使用,包括charshortintlonglong longfloatdouble;一种是自定义类型,当内置类型不能满足时,支持自定义一些类型,像结构体、枚举、联合体。这次先来看看结构体。位段的成员必须是或signed int,在C99中位段成员的类型也可以选择其他类型。位段的成员名后边有⼀个冒号和⼀个数字。比如struct Aint _a:2;int _b:5;int _c:10;int _d:30;struct A。原创 2023-11-27 21:54:16 · 939 阅读 · 2 评论 -
【C语言】数据在内存中的存储
我们知道在操作符中与2进制有关的操作符:& | ^ ~ >> <<使用这些操作符就离不开整数中在内存中的存储。我们一起来看看整数的存储。大端的字节序:将一个数值的最低位字节的内容存储到高位地址,高位字节序的内容存储到低地址处。小端的字节序:将一个数值的最低位字节的内容存储到低位地址,高位字节序的内容存储到高地址处。就像一个三位数从右往左就是个,十,百,也就是从低到高。举个例子:大端就是把低地址位依次从高地址位置放置小端就是把低地址位依次从低地址位置放置。原创 2023-11-16 14:59:42 · 97 阅读 · 3 评论 -
【C语言】实现贪吃蛇游戏
我们要用C语言来实现贪吃蛇游戏之前,得了解C语言函数、枚举、结构体、动态内存管理、预处理指令、链表和Win32 API等等的一些相关知识。关于链表和函数,在之前的文章中都有写过了,友友们可以自行查看。剩下知识会在之后的博客中所提及,请大家多多关注。这里主要介绍Win32 API,及如何一步一步实现贪吃蛇游戏。下面介绍的结构体和函数在Win32 API 都是现成的,我们就了解一下如何使用就行。原创 2023-10-28 21:09:38 · 2569 阅读 · 4 评论 -
【C语言】字符串函数
用s1和s2来继续匹配,当s2遍历完str2时,并没有发现有与str1中相匹配时,就重新返回str2,方便下一次的匹配。是用来求字符串的长度的,那我们实现就只需要遍历字符串,统计一下出现在\0,之前的字符个数就行了。是用来求字符串长度的,而它统计的是\0之前出现的字符的个数,也就是说字符串的结束标志是\0。有三种情况,像上图那种,字符串2中q比字符串1中c大,返回的就是一个小于0的数字。是用于比较两个字符串的,不过它比较的是两个两个字符串中对应位置上的字符,而且是按。原创 2023-10-21 20:39:50 · 152 阅读 · 6 评论 -
【C语言】字符函数
C语言中有一系列的函数是专门做字符分类的,也就是一个字符是属于什么类型的字符的。求字符串长度,而字符串的结束标志是\0,strlen统计的是\0之前出现的字符的个数。是用来判断参数是否是小写字母,如果是小写字母返回非0的值,如果不是小写字母返回0。上面的代码,我们将小写转大写,是-32完成的效果,有了转换函数,就可以直接使用。是用来判断参数是否是大写字母的,如果是返回非0的值,如果不是返回0。是用来判断参数是0-9的数字,如果是返回非0的值,如果不是返回0。在遍历字符串,就要知道字符串的长度,我们用。原创 2023-10-19 09:01:05 · 84 阅读 · 2 评论 -
C语言指针(2)
计算数组的元素个数时,我们使用了sizeof(数组名),而sizeof中单独放数组名,这里的数组名表示整个数组,计算的是整个数组的大小,单位是字节。1.sizeof(数组名),sizeof中单独放数组名,这里的数组名表示整个数组,计算的是整个数组的大小,单位是字节。数组在内存中是连续存储的,只要知道第一个元素的地址,后面的元素依次就能找到。2.&数组名,这里的数组名表示整个数组,取出的是整个数组的地址。指针的类型决定了,指针加减整数时,一次性跳过多少个字节。而所对应的下标为0,1,2,3,4。原创 2023-10-08 23:13:56 · 56 阅读 · 2 评论 -
C语言基础知识(一)
库函数是为了提高程序员的效率,c语言标准规定的一组函数,它是编译器厂商所提供的。这种函数有很多,而它们聚集到一起就成了标准库,而这些函数被称为库函数。其中print就是打印的意思,而f就是format,也就是格式,printf就是按照格式打印。例如上面的代码就能在屏幕上打印出hello word.若想输出其它的字符,就将字符放入printf的双引号之中。函数是程序的入口,有且就有一个。:垂直分隔符,光标移到下一个水平制表符,通常是下一行的同一列。:制表符,光标移到下一个水平制表位,通常是下一个8的倍数。原创 2023-07-24 22:00:28 · 57 阅读 · 0 评论 -
c语言基础知识(二)
if (条件)语句当条件为真时执行语句,为假时不执行;而在c语言中非零表示真,零表示假。原创 2023-07-29 17:06:40 · 443 阅读 · 2 评论 -
C语言实现扫雷游戏
用c语言进行扫雷游戏的编写原创 2023-08-22 21:23:50 · 93 阅读 · 2 评论 -
C语言指针(1)
32位机器假设有32根地址总线,每根地址线出来的电信号转换成数字信号后是1或者0,那我们把32根地址线产⽣的2进制序列当做⼀个地址,那么⼀个地址就是32个bit位,需要4个字节才能存储。同理64位机器,假设有64根地址线,⼀个地址就是64个⼆进制位组成的⼆进制序列,存储起来就需要8个字节的空间,指针变的⼤⼩就是8个字节。而在上面的代码中,原来a为5,我们通过指针拿到了a的地址,然后通过解引用操作*p=0将原来a的5改为0。像下面这样就可,但值得注意的是我们打印的是地址用到的是**%p**。原创 2023-10-06 23:15:23 · 62 阅读 · 1 评论