- 博客(13)
- 收藏
- 关注
原创 我的创作纪念日
我并没有把写博客当成一种负担,写博客已成为我生活中的一部分,写博客可以及时找到对知识点理解的不足。由于我现在还是初学者,所以我会把主要精力放在学习新的技术,平常对博客先进行构思,然后在周六和周日来创作。刚开始接触CSDN是为了在上面找一些解题思路,学了一段C语言后,为了巩固所学的知识点,会把那些知识点用博客写出来,加深自己的印象,也锻炼一下自己的表达能力。我希望以后可以写出质量更好的博客,并成为一个优秀的C++后台工程师。3.因为我还是初学者,还没有过多的交流。目前我写的最长的代码就是这个贪吃蛇代码。
2024-05-25 18:38:21
134
原创 C语言顺序结构——单链表
因为只要插入数据就需要创建一个新的节点,所以就把创建节点单独分装成一个函数,当然也很简单,用malloc动态开辟一块空间,其中下一个节点的地址不清楚,就先付为空。④.头插:先让新节点的next指向*pphead,再让*pphead付为新节点的地址(因为链表为空的情况包含在链表不为空的情况中,所以并没有分类写)。⑪.删除指定位置之后的数据:先找到POS,再让POS的next指向下一个节点的下一个节点,最后free掉POS的下一个节点。先找到原链表最后一个节点,再让原链表的next指针指向新创建的节点即可。
2024-05-22 15:30:45
258
原创 C语言数据结构——顺序表
上述就是我要说的顺序表的所有内容,顺序表还可以添加其他的功能,可根据自己的需求来尝试添加,文章有什么不足,欢迎大家指出。在讲顺序表之前,要先对数据结构有所了解,数据结构是指计算机存储和组织数据的形式,其中包括了顺序表、链表、二叉树等。和动态数组相比,静态数组的长度固定,灵活性差,所以在用顺序表时往往用动态顺序表。①初始化和销毁(因为数组空间是用realloc动态开辟的,要及时释放,释放后要及时置为空,避免野指针)②检测顺序表空间(在向顺序表中插入数据之前要先判断顺序表的空间是否足够,不够的话要为其扩容)
2024-05-16 08:41:22
328
原创 简谈编译中的预处理阶段
2.查找策略不同:找本地头文件时会优先在.c文件的目录下查找,找不到会像找库的头文件一样在标准位置查找,再找不到就会报编译错误。4.避免一个头文件被多次引用 (#ifndef #define #endif或#pragma once)这个在大型工程中为保证程序效率还是相当有必要写的。1.#define定义的常量(会在预处理阶段查找替换定义的符号,替换后会把#define这条语句删掉)其不仅可以定义数也可以定义一条代码等。2.#define定义的宏(可达到函数的效果,但与函数还是有区别的)
2024-03-31 15:35:27
239
2
原创 C语言中的文件和文件操作
fgets要给其传三个参数:读取的数据要放的地址,读取的个数(最多读num-1个数据,且只能读一行,当num-1>一行的数据个数时,把\n读上就不会再读了),文件指针。注:每一个流打开时,都会带有两个标记值,当是因遇到文件末尾而结束时,文件末尾相应的标记值就会被标记,当是因遇到错误而结束时,错误相应的标记值就会被标记。fwrite和fread的参数是一样的:数据的来源或数据读到的位置,元素大小,元素个数,文件指针。要给fgetc传一个文件指针,要给fputc传两个参数:字符和文件指针,具体参考。
2024-03-27 17:10:05
747
原创 浅谈结构体
2.其他成员对齐到对其数(成员大小与编译器默认对齐数的较小值)的整数倍,结构体的总大小要对齐到最大对齐数的整数倍。3.当有结构体嵌套时,嵌套结构体要对齐到其成员中最大对齐数的整数倍,结构体总大小要对齐到总最大对齐数的整数倍。结构体主要内容就讲完了,由于篇幅有限,与其相关的还有基于结构体的位段(专门用来节省内存)和柔性数组,感兴趣的话可以去了解了解。今天就谈谈结构体的相关内容(主要讲结构体的内存对齐)。注:VS的默认对其数是8,gcc没有默认对齐数,对齐数就是成员的大小。三.结构体的内存对齐。
2024-03-23 16:35:14
130
原创 C语言中的整形存储和浮点型存储
根据IEEE754规定任何一个二进制浮点数都可以写成(-1)^S*M*2^E,存的时候只存S、M、E即可其中S占一位是0/1,是0时代表是正数,是1时代表是负数,M(1<=M<2)是有效位,在存时会省略1即可提高一位的精度,E是指位数,规定E存无符号数,所以在浮点数为32位时占8位且E=E真实值+127,在浮点数为64位时占11位且E=E真实值+1023。特殊情况:1.若E为全0,则代表是一个非常小接近于零的数,这时就直接E真=1-127,M前直接补0.注:正数和无符号整形三码统一,即原码就是反码和补码。
2024-03-20 17:00:27
294
1
原创 字符(分类/转换)函数,字符串函数和相应的模拟实现
5.strtok是将带有分隔符的字符串分为字符段,该函数在使用时需要给他传字符串起始地址和分隔符组成的字符串起始地址,它会将分隔符换为'\0'并记住其位置并返回字符段起始地址,因记住了'\0'的位置,所以下次再调用时第一个参数传NULL即可。3.strcmp和strncmp这两个函数是比较相应字符ASCII值的大小,大于返回大于零的数,小于返回小于零的数,等于则返回零。字符分类函数的使用非常相似,举islower()的例子,其他函数与其相同:。今天要讲的东西就讲完了,有什么不足欢迎大家指出。
2024-03-17 13:46:05
1342
1
原创 qsort和模拟实现qsort(冒泡排序)
在此之前我们先了解一下qsort,因其是库函数所以要包含<stdlib.h>的头文件,其的底层逻辑是快速排序,qsort有四个参数,分别为1.要排序的数组的首元素地址2.要排序的数组的元素个数3.元素的大小4.自己写的比较函数。cmp函数的返回值是整形(大于返回大于0的数,小于返回小于0的数,等于则返回0)对qsort具体的说明可以从。对结构体进行排序要依据结构体中的某一元素进行(比如名字,年龄的大小),下面代码用到了字符串比较的函数——strcmp(其是比较对应字符的ASCII值的大小)。
2024-03-07 17:07:26
213
1
原创 浅谈C语言中的指针
我们都知道c语言中指针是用来储存地址的,我将其分为两类——普通指针和复杂指针(这只是我个人的见解),其中普通指针如整形指针、浮点型指针、结构体指针等写法简单的指针,复杂指针如数组指针,函数指针等写法较复杂的指针。现在p和int(*)[5]等价,typedef int(*p)(int,int);1.整形指针(int*p)顾名思义就是储存整型变量地址的指针,其中int是指针指向的对象的类型,*代表p是一个指针变量,p是变量名。pA代表函数指针变量,int(*)(int,int)是函数指针类型。
2024-03-06 14:24:29
296
2
原创 简谈C语言中的选择结构和循环结构
其中包括选择结构的类型(if if...else if...else if...else switch...case)及其中的注意事项,循环结构的类型(while() for() do...while())及循环中break,continue的作用,下面详细介绍。用switch要注意break的使用。if...else可以认为是双分支结构(不包括选择结构的嵌套的话),程序进入if就不会进入else,反之进入else就不会进入if。
2024-01-24 22:45:58
374
原创 用C语言写扫雷程序
其中包括建立两个数组(一个为布雷数组,一个为排雷数组),对两个数组初始化(因后期要计算坐标周围的雷数,初始化时将横纵坐标均增大两个单位 即要呈现9*9的表格,就要初始化11*11的表格)我定义了a(*)和b(#),分别将布雷的坐标初始化为‘#’排雷的坐标初始化为‘*’。若周围八个坐标含雷,则在所选坐标上显示雷的个数,若周围不含雷,则在所选坐标上显示空格并分别以八个坐标向外判断雷的个数,以此向外递归直到检测到有雷。递归时要先判断坐标是否在范围为内,再判断周围雷的个数,每判断一次雷的个数win++。
2024-01-19 22:13:15
928
原创 自我介绍及规划
我是刘梓奕,是一名大一的学生,学习区块链技术专业,刚接触C语言,未来我想成为一名专业且优秀的C++后台开发工程师。学习编程贵在坚持,现在要一步一步积累,坚实的基础是走向成功的重要保障,水滴石穿。为了能打下坚实的基础并熟练的运用C语言,对于学习计划,我每天将单独留出一小时时间练习敲代码。目前还未对IT公司过多的了解,不确定想要进入的公司,相信在未来的学习中我能确定明确方向。
2024-01-16 22:22:58
486
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人