![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C语言
文章平均质量分 72
is_qinxu@163.com
电话:18013032683
微信:xq-wise_loving
邮箱:is_qinxu@163.com
展开
-
Glibc之malloc实现原理
详细了解这部分知识,再看下面的内容会很舒服。原创 2023-12-10 16:37:10 · 978 阅读 · 0 评论 -
C风格可变参数函数
环境:Ubuntu gcc11.3.0。原创 2023-08-10 17:52:28 · 82 阅读 · 1 评论 -
可变参数宏函数
要定义可变参数宏函数,可以使用#define指令和特殊的宏定义语法。LOG:宏函数的名称。...:省略号表示可变数量的参数。macro_body:宏函数的具体代码。原创 2023-08-10 17:51:40 · 282 阅读 · 1 评论 -
四大排序算法
直接插入排序最坏的情况下:逆序的情况就是最坏的情况,这意味着每一次进行单趟排序,tmp都要循环至最前面进行交换,时间复杂度时O(N²)。最好的情况:有序或者接近有序。这意味着单趟排序时每一个tmp代表的值要进行的循环只有1次或者接近1次,时间复杂度为O(N)。我们一般默认最坏的情况是时间复杂度,所以是O(N²)。希尔排序希尔排序的时间复杂度以我的能力实在没法儿求,需要高深的数学知识很强的数理能力。因为gap的取值有很多种方法,也没有一个公认的时间复杂度。直接选择排序。原创 2022-12-20 20:41:52 · 164 阅读 · 0 评论 -
浮点型的大小比较
浮点型不能用==来比较数据是否相等,因为浮点型数据在存储时会损失精度,可能大于原值也可能小于。在下图中我们可以看到,编译器打印在屏幕上的的值和我们期望得到的值并不相等,数据可能变大,也可能变小。这与浮点型在内存中的存取方式有关。原创 2022-10-23 07:53:33 · 2160 阅读 · 0 评论 -
C_KMP
KMP,即字符串查找算法,用于在一个文本串A中查找另一个模式串P的出现位置。初学KMP看不懂这个算法流程正常,跟着我的思路,看到后面就可以看懂了设文本串A用 i 控制,模式串P用 j 控制。如果当前字符匹配成功,则继续匹配下一个字符;如果匹配不成功,则j=next[j];(也就是让j移动到了next[j]处),如果一直没匹配,那么直到 j 回到0下标处 j便不再回退。原创 2022-10-04 22:33:54 · 259 阅读 · 1 评论 -
浮点型数据在内存中的存储
任意一个二进制浮点数V可以表示成下面的形式:(-1)^S表示符号位,当S=0,V为正数;当S=1,V为负数。M表示有效数字,大于等于1,小于2。2^E表示指数位。举例来说:十进制的5.0,写成二进制是 101.0 ,相当于 1.01×2^2。那么,按照上面V的格式,可以得出S=0,M=1.01,E=2。十进制的-5.0,写成二进制是 -101.0 ,相当于 -1.01×2^2。那么,S=1,M=1.01,E=2。......原创 2022-08-17 15:19:08 · 238 阅读 · 0 评论 -
整型数据的存储,大小端,整型的类型转换
# 整型在内存中的存储和运算## 存储方式和顺序对于整型来说,_数据存放在内存中其实存放的是**补码**,顺序由机器的**大小端**决定_### 存储方式#### 原码反码补码是什么,有什么用计算机中的整数有三种2进制表示方法,即原码、反码和补码。三种表示方法均有符号位和数值位两部分,符号位都是用0表示“正”,用1表示“负”。正数的原、反、补码都相同。负整数的三种表示方法各不相同。...原创 2022-08-16 21:18:43 · 336 阅读 · 0 评论 -
表达式求值 隐式类型转换 整型提升 算数转换
隐式类型转换应用于C整型算术运算中。C整型算术运算总是至少默认以整型类型的精度来进行的。为了获得这个精度,表达式中的字符和短整型操作数在使用之前被转换为普通整型,这种转换也被称为整型提升。......原创 2022-08-16 21:04:32 · 77 阅读 · 0 评论 -
文件操作 重点 盲区
c语言文件操作相关连接硬件知识和简单的函数操作为个人学习见解原创 2022-04-18 20:47:27 · 317 阅读 · 3 评论 -
内存缓冲区
缓冲区 之所以要存在缓冲区,主要有两个原因: 1. **CPU**的读写速度与**硬盘**不匹配:由于CPU的读写速度远高于硬盘,所以当程序进行读写操作时是需要等待的,而当一个计算机的所有程序都需要等待硬盘时,大家的体验就会很可怕,相信大家都被坐在电脑桌前几十秒几分钟啥也不能干的那种焦躁给支配过。但是有了缓冲区,就可以将数据先放入缓冲区中,程序可以继续向下执行而无需等待,等到缓冲区充满了便将数据全部放入硬盘中,而缓冲区又可以开始存入新一轮的数据。 2. 减少操作硬件的次数......原创 2022-04-20 08:51:05 · 3702 阅读 · 1 评论 -
C语言实现汉诺塔问题
汉诺塔问题的个人理解,希望有所帮助原创 2022-07-13 14:48:27 · 428 阅读 · 0 评论 -
C语言操作符 移位操作符 位操作符 运算 难点 重点
10的二进制补码为00000000000000000000000000001010,将10的二进制补码向左移动一位,右端不上一0,左端0由于超出32个比特位,所以抛弃。看这个语句,我们可以很明显地得到答案移位运算符不是赋值运算符,不能给变量赋值,变量在没有被赋值的情况下本身的值是不变的。2个整形的补码,对应的二进制位一个为1,则为1,若对应的二进制位数字都为0,则位0。2个整形的补码,对应的二进制位都为1,则为1,若对应的二进制位数字不同,则位0。两个整形的补码,对应的二进制位相同则为0,相异为1,....原创 2022-07-20 18:15:49 · 247 阅读 · 0 评论