![](https://img-blog.csdnimg.cn/20190927151132530.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
C语言基础
文章平均质量分 60
C语言入门级知识点
谁在夜里看海.
Idea Worth Spreading.
展开
-
【C语言】动态内存管理(详解malloc,calloc,realloc,free)
什么是动态内存管理?先看概念:动态内存管理机制,主要包含两方面内容,用户申请内存空间时,系统如何分配;用户使用内存空间完成后,系统如何及时回收。另外,内存不断分配与回收的过程,会产生诸多内存碎片,但通过利用数据结构,内存碎片化的问题能够得到有效的解决。当我们使用数组的时候,数组的大小可以用一个具体的数字或者宏来表示,也可以用变常量的方式,也就是先scanf输入sz,再用sz来表示数组大小,但是以上方法在确定数组大小之后就无法对其进行更改,这在具体运用当中很不方便,于是就有了动态内存管理。原创 2023-03-05 23:26:35 · 554 阅读 · 0 评论 -
【C语言】详解通讯录(初级版本)
我们想把联系人信息放在通讯录中,就必须定义一个结构体数组来存放,然而我们要想精准存放的话,也要定义一个变量sz(size)来确保每一个联系人都能依次存放进去//定义通讯录int sz;}Contact;//初始化通讯录//声明通通放在头文件中pc->sz = 0;完成了上述操作,接下来要做的就是对通讯录各种功能的具体实现了。代码还有不完善的地方,欢迎老铁们在评论区交流指正,觉得本篇文章还有价值的,请三连支持一下~~原创 2023-03-04 00:56:53 · 3774 阅读 · 0 评论 -
详解库函数strcpy,memcpy与memmove以及函数的自我实现
从库函数strcpy到memcpy再到memmove的过程,我们可以看出,事物的发展是不断完善的,没有一个事物生来就是完美的,学习就是让不完美的我们不断完善的一个过程,也许我们永远也都达不到完美,但是只要活在当下,每天进步一点,就足够了,所以,诸君尽管大胆的向前走,明天会更好。原创 2023-03-02 19:17:58 · 1380 阅读 · 1 评论 -
字符串之左旋问题
如图所示,先将第一个字符赋给tmp,其次后面元素整体往前移一个单位,再把tmp赋给最后一个字符。可以将一个字符串循环左旋,每循环一次判断一次,直到左旋结束。可以先逆序AB,再逆序CDEF,变成"BAFEDC"假设字符串为"ABCDEF",k=2;然后再整体逆序变为"CDEFAB"2.判断两个字符串是否存在左旋关系。k=3,4,5也同理。原创 2023-02-03 18:59:17 · 311 阅读 · 0 评论 -
C语言趣味题:猜数字游戏(含代码创建思路与过程)
本人是一位刚接触编程语言不久的的大一新生,以后发更多的博客,期待与各位朋友一同沟通探讨,互相进步。ps:C语言中循环的使用的频率是 for>while>do while 的,do while一般不怎么用到,但是在这里是最合适的;每次游戏自动生成一个1-100的随机整数,玩家有五次猜的机会,猜对获得表扬,猜错离场或选择继续游戏。当我输入0的时候,它没有输出“退出”,而且又出现了菜单界面,并没有达到想要的效果;其中break发挥了至关重要的作用,实现了猜中离场的效果。这样就可以在循环里方便的使用了;原创 2022-11-03 23:12:42 · 2421 阅读 · 0 评论 -
C语言:数组名是什么
在写代码的时候,我们经常用到数组,那么有没有想过数组名是什么呢?综上所述:一般情况下,数组名就是第一个元素的地址,但是有例外,当用sizeof(数组名)计算数组大小是数组名表示的则是全部元素。实际上数组名就是一个地址,那为什么int传参也可以呢,编译器这样设计是考虑到对初学者来说更容易理解;不对啊,如果数组名是第一个元素的地址的话,那它的大小不应该是4个字节吗,这里怎么是20呢。既然数组名就是地址,那么这个地址又是谁的呢?数组名原来表示的是第一个元素的地址吗。这里的20其实是全部字符的大小。原创 2022-11-07 22:14:43 · 699 阅读 · 0 评论 -
(C语言之递归运用)计算一个数的每位之和(递归实现)
不过这里不用递归依然可以容易地实现,但是平时刷题时偶尔尝试着用递归,用多了就熟练了,碰到一般方法实现不了的时候就可以试着用递归。例如,调用DigitSum(1729),则应该返回1+7+2+9,它的和是19。再然后: 1+7+3+9。其次是: 17+3+9。输入一个数如:1739,想要输出它的每一位之和即:1+7+3+9。那么可以把它先拆分成: 173+9。输入:1729,输出:19。废话不多说直接上代码。原创 2022-11-09 22:12:05 · 1535 阅读 · 0 评论 -
求两个二进制中不同位的个数?(>>操作符,&位操作符)
输入两个int类型的数(32位bit位),求他们之中不同位的个数。原创 2022-11-28 20:15:46 · 259 阅读 · 1 评论 -
浮点型与整形的存储差异
但是,我们知道,科学计数法中的E是可以出现负数的情况的所以IEEE 754规定,导入内存时ER的真实值必须再加上一个中间数,对于8位的E,这个中间数是127;浮点型与整形的存储方式是截然不同的,以浮点型的方式读取整形变量是会出错的,以整形的方式读取浮点型变量也是不可行的。那么,S=1,M=1.01,E=2。对于64位的浮点数,最高的1位是符号位S,接着的11位是指数E,剩下的52位为有效数字M。对于32位的浮点数,最高的1位是符号位S,接着的8位是指数E,剩下的23位为有效数字M。E不全为0或不全为1。原创 2023-01-05 16:18:36 · 357 阅读 · 0 评论 -
一段”有趣”的代码(涉及函数指针)
这个是一个函数指针类型:后面的()里面是调用值,*表示指针类型,void表示返回值为空。然后又被*解引用,效果相当于(函数名)(调用值),只是这里无调用因此()内为空。可见0前面的括号里面内容是 void(*)()所以0从int整形被强制类型转换成函数指针类型。这段代码该如何解读呢。原创 2023-01-08 14:17:52 · 258 阅读 · 0 评论 -
冒泡排序与qsort排序
但是这里只能排序整形数组,无法排序浮点型float数组和结构体struct stu等等。//需要包含头文件 #include三、模仿qsort的功能实现一个通用的冒泡排序。于是就有了qsort排序。原创 2023-01-31 23:15:27 · 320 阅读 · 0 评论 -
算法练习:《跳水冠军》《谁是凶手》
每个人的供词都可以看做一个逻辑语句判断,按照题目要求,四条语句相加结果应该是3。因为每一位选手都有五种可能,所以用for循环列出所有情况。运行结果是:a=3,b=1,c=5,d=2,e=4。每位选手说对了一半,用if语句进行转译。运行结果是:凶手是:C。原创 2023-02-01 16:18:09 · 261 阅读 · 0 评论