
c语言基础
文章平均质量分 55
c语言基础
DZAXX
这个作者很懒,什么都没留下…
展开
-
(C语言)动态内存管理
calloc函数跟malloc函数的用法基本相同,开辟成功返回开辟空间的首地址,传递的参数第一个为开辟空间的元素个数,第二个参数为开辟空间每个元素的大小,不同的是calloc函数开辟空间时会将空间内每个字节都初始化成0。realloc函数时一个扩容函数,有两个参数,第一个参数是一个指针,传递的是要扩容的地址,第二个参数传递的是要开辟的空间的大小,返回值是一个地址。我们都知道,在创建数组来存取数据时,开辟的空间是固定的,既不能根据用户来选择,也不能让他增长,那有没有什么办法可以解决这个问题呢?原创 2023-09-27 14:37:47 · 62 阅读 · 2 评论 -
(C语言)黑窗口简易贪吃蛇实现
c语言实现一个简易贪吃蛇还是比较容易的,强一点的同学在学完数组可能就可以写出来,差一点的同学像我一样学完结构体琢磨一下写出来也比较容易。这个函数可以实现光标设置,也就是能在任意位置输出想要的数据,传入的x,y是行数和列数。srand函数设置种子的参数可以用时间函数(返回值是不断变化的时间戳)来进行设置。用rand函数来输出随机值,需要用srand函数来给rand函数传入一个种子。使用此函数可以隐藏后面一闪一闪的光标,也就是这个小竖杠。需要加上头文件,原创 2023-09-27 11:09:12 · 210 阅读 · 1 评论 -
(C语言)教你学会递归(含汉诺塔等递归问题)
给定三根柱子,记为 A,B,C ,其中 A 柱子上有 N 个盘子,从上到下编号为 0 到 N−1 ,且上面的盘子一定比下面的盘子小。我们可以很清楚的得到,当n=1或者2时,函数的结果(返回值)等于1;当我们移动一次,将移动的字符进行打印,可以设置一个全局变量移动一次后将变量+1,可以计算出要的步数;指的是这样一个数列:1,1,2,3,5,8,13,21,34,55,89...1.将A柱上的n-1个盘子借助C柱移向B柱。3.将B柱上的n-1个盘子借助A柱移向C柱。2.将A柱上仅剩的最后一个盘子移向C柱。原创 2023-09-25 20:26:48 · 66 阅读 · 1 评论 -
(C语言)结构体内存对齐-教你计算结构体的大小
如果只使用该预处理命令,不在括号内填写数字,那么会恢复为编译器默认的对齐数。注意:大多数情况下,成员变量已经占用的总字节个数并不一定正好为其成员变量中的最大对齐数的整数倍,这时我们需要将其扩大为最大对齐数的整数倍。比如,当一个平台要取一个整型数据时只能在地址为4的倍数的位置取得,那么这时就需要内存对齐,否则无法访问到该整型数据。在画图时可能有博友会想,内存这么重要,在进行内存对齐的时候怎么还有内存被白白浪费掉呢?4.如果嵌套了结构体,结构体对齐到最大对齐数的整数倍。结构体总大小刚好是最大对齐数的整数倍。原创 2023-09-25 09:41:03 · 66 阅读 · 1 评论 -
(C语言)整形在内存中的存储
2是111111111-111111111-11111111-11111111//计算后源码=-1。整数的二进制形式有源码,反码,补码,计算机中以补码的形式进行存储。3是00000000-00000000-00000000-11111111//源码=255。首先-1是整形,在计算机中存储的是以补码形式存储,也就是32个比特位的1;2.有符号存储的数字最高位是符号数,1代表负数,0代表正数。打印发生提升,char是有符号数整形提升补符号位;再看看这段代码,答案是4,294,967,168。原创 2023-09-24 16:58:33 · 64 阅读 · 1 评论 -
(C语言)头发掉光光的指针试题
1.数组名的意义:sizeof(数组名):这里的数组名是指整个数组,计算的是整个数组的大小,单位是字节。&(数组名):这里的数组名是指整个数组,取出的是整个数组的地址。其他情况下数组名代表的都是数组首元素地址。2.sizeof: sizeof 是C语言中的一个单目运算符,用来计算数据类型所占空间的大小,单位为字节.3.strlen:strlen是一个函数,用来计算字符串的长度,当遇到'/0'时停止。1.一维数组。原创 2023-09-18 10:50:00 · 75 阅读 · 1 评论 -
(C语言)qsort函数模拟实现
问题首先是如何比较两个元素之间的大小,和将两个元素进行排序我们很容易想到,可以通过地址来找到被查找元素的地址,接着通过每个数据的大小进行数组元素的引用并进行比较,因此参数还需传递数组元素的大小。只要将各个元素的地址作为参数进行传递给比较函数即可,地址我们将其转化成char*类型的指针以此来方便地址的确认和查找,而比较函数可以由使用者自己来进行书写。写一个函数进行,首先肯定是要将被排序数组的地址给传递过去,以及数组元素的个数(用来确定待排数组的冒泡排序的次数),其他是否还有参数要进行传递还未知,先不用管。原创 2023-09-13 20:21:28 · 99 阅读 · 2 评论 -
(C语言)指针详解2
回调函数就是用函数指针作为函数的参数的函数,回调函数的作用是将代码逻辑分离出来,使得代码更加模块化和可维护。int *(*p)[3] 是一个指向函数指针数组的指针,其实也就是对之前的进行了嵌套,一般不会写出这种代码也不会碰到这种题目,只做了解使用。函数指针数组是数组,数组里面存放的是函数指针,数组中存放的类型是相同的,因此函数指针的参数,返回类型也应该相同。qsport函数是一个排序函数,能对任意类型的数组进行排序。第四个参数是一个函数指针,是用来比较两个函数的方法。第二个参数是待排数组元素的个数。原创 2023-09-12 17:30:55 · 51 阅读 · 0 评论 -
(C语言)指针详解1
字符串常量表达式的值是字符串首字符'a'的地址,由于字符串常量不能被修改。数类型参数为int,返回类型为void,sig函数的参数拿走后剩下的是返。指针数组是数组,数组里面存放的都是指针;跟括号在一起,可以知道这是一个函数声明,sig有两个参数,一个。参数类型为int,一个参数类型为函数指针类型,函数指针指向的函。回类型,可以知道返回类型也为函数指针,当然,这个代码太过于复。4.3数组在传参的时候,形式可以写成数组,也可以写成指针。2.数组指针-指向数组的指针-存放的是数组的地址。函数名就是函数的地址;原创 2023-09-11 09:13:05 · 52 阅读 · 0 评论 -
(C语言)扫雷实现
很容易想到,将我们内部的棋盘可以初始化成0,将雷定义成1,这样就能很好将每个地方周围有多少雷很好的计算出来,而外部供人使用的棋盘,我们将他定义成*来,当玩家选择坐标后将内部棋盘经计算出的数字进行传递即可。首先玩家应该定义出棋盘,扫雷在棋盘有隐藏的雷,而玩家是看不到的,因此很容易想到定义出两个棋盘,一个棋盘用来布局,另一个棋盘给玩家进行使用。将扫雷游戏主要框架逻辑写在test文件中,游戏中各个函数的实现集合在源文件中,函数的声明,头文件及宏定义在自己定义的head头文件中,以实现项目条理足够清晰;原创 2023-07-29 20:09:33 · 66 阅读 · 1 评论 -
个人介绍
大家好,我叫邓俊,是就读于东华理工大学软件工程专业的一名大一的学生,写下这篇文章的目的主要是为了聊一聊对自己未来规划的一些想法及在目标不明或学习停滞不前能够看一看这篇文章来激励自己不断奋斗向前。因此,当前阶段的学习就及其重要,我深知已经浪费了不少时间,开始更加努力就显得更为重要,今后我会通过多方面来进行努力学习编程,每天花上至少6小时的时间进行学习。本人学习编程的目标是为了以后至少能有一份好的工作,在年轻时能赚一点钱能给今后的老婆买花花,能让父母过上好生活及能够为今后的创业道路有一份经济基础。原创 2023-06-23 18:53:37 · 58 阅读 · 1 评论