
c语言
文章平均质量分 80
New Young
拥抱变化,沐浴新知。
展开
-
C语言实现合式公式的判断
文章目录前言合式公式约定思路删除否定联结词删除括号第一个联结词的下标判断合式公式所有代码效果总结前言本文介绍通过 编程实现《离散数学》中的合式公式的判断。合式公式很明显用递归去模拟实现判断过程相对容易。(当然利用栈,循环实现也行,毕竟递归是发生在栈区(函数栈帧),另外递归解决时要处理的细节就很多了,循环会更麻烦)。由合式公式的定义,很明显原子公式就是我们递归的出口,确定了出口,剩下就是怎么通过递归算法,递推到这个出口约定联结词代替非!合取(原创 2022-04-02 23:22:34 · 1603 阅读 · 26 评论 -
程序的编译与执行环境
所有的结果都是:水到,渠成。原创 2022-01-25 19:09:36 · 1507 阅读 · 9 评论 -
预处理详解
所有的结果都是:水到,渠成。原创 2022-01-25 18:34:28 · 1617 阅读 · 10 评论 -
文件操作详解
所有的结果都是:水到,渠成。原创 2022-01-21 13:12:02 · 1421 阅读 · 15 评论 -
结构体,枚举,联合体,内存对齐
文章目录前言自定义类型结构体什么是结构体结构体的声明正常声明特殊声明结构体的自引用结构体变量的成员初始化非嵌套结构体成员的初始化嵌套结构体成员的初始化结构体数组的定义与初始化结构体成员访问注意结构体内存对齐!!!!!内存对齐的规则用例一二三四为什么存在内存对齐怎么尽量避免因内存对齐,导致的空间浪费修改编译器的默认对齐数结构体传参位段什么是位段位段的内存分配位段的跨平台问题位段的应用枚举什么是枚举枚举的定义枚举的优点联合体联合类型的定义联合的特点联合体大小小结前言本篇介绍自定义类型:结构体,枚举,联合体原创 2021-10-29 23:29:23 · 1427 阅读 · 7 评论 -
指针与指针面试真题
文章目录前言:内存指针的重要性指针变量的定义NULL指针(博主目前也解释不清楚,但是知道怎么用就行了)指针的大小:指针类型指针的运算普通指针数组指针与指针数组函数指针一级指针与二级指针经典有趣的代码指向函数指针数组的指针回调函数指针笔试题笔试题一笔试题二笔试三笔试四总结刷题网站:前言:本篇介绍指针。指针是一个很抽象的概念,博主不是太能解释清楚。唯一的建议是自己在实践中悟。…内存了解指针前,我们需要了解内存正如图中所说,通过地址可以找到内存唯一的存储单元。因此说知道了地址,就知道了数原创 2021-10-27 22:54:47 · 1412 阅读 · 6 评论 -
常见字符串函数及其复写
文章目录前言:长度不受限制的函数strlenstrlen复写(3种,指针,递归,循环)strcpystrcpy复写strcatstrcat复写strcmpstrcmp复写(2种,正常,vs特置)为什么说这些函数不受限制长度受限制的字符串函数strncpystrncpy复写strncatstrcat复写strncmpstrncmp复写内存操作函数memcpy,memmove(内存拷贝)memmove复写memcmp(内存比较)memcmp复写memset(内存赋值)memset复写字符串查找函数strstr复原创 2021-10-20 22:21:26 · 1845 阅读 · 15 评论 -
(使用柔性数组)动态版通讯录
文章目录前言:思维导图思路分析分析一:分析二分析三:分析四:函数分析初始化函数打印函数排序函数添加元素函数查找元素函数删除元素函数修改元素函数全部代码:text.ccontact.hcontact.c效果展示总结前言:博主目前实力有限,博文有什么错误,请你斧正!后面学会EasyX会重新更新本篇博客。0.0.上一篇博客更新了动态内存管理与柔性数组,因此趁热打铁,本通讯录采用动态函数与柔性数组。希望本篇博客对你有帮助。思维导图思路分析分析一:我的思路是来一个元素,增原创 2021-10-07 22:30:25 · 884 阅读 · 15 评论 -
动态内存管理与柔性数组
文章目录前言思维导图C/C++程序内存区域分类动态申请 :malloc ,calloc,reallocmalloccallocrealloc(重新分配已申请的空间)三者联系动态释放关键字:freefree内存泄露常见动态内存错误忘记free(内存泄漏)!!!!!!!!不及时检测是否申请成功(对NULL的解引用)越界访问开辟的空间对非动态开辟空间的指针free未完全释放动态申请的空间free后忘记将野指针置为NULL重复free同一块动态内存经典面试题面试题一面试题二面试题三面试题四柔性数组序柔性数组的特点柔原创 2021-10-06 20:52:52 · 888 阅读 · 14 评论 -
C语言结构体中的成员数组与指针的区别
文章目录前言问题NULL指针分析代码一分析代码二结构体中的指针与数组差别分析代码三分析代码四分析前面问题总结前言1.博主实力有限,博文有什么错误,请你斧正,感谢!2.本文借签陈皓的文章:《C语言结构体中的成员数组与指针》问题#include <stdio.h>struct str{ int len; char s[10];};struct foo { struct str *a;};int main(int argc,原创 2021-10-05 23:20:42 · 1273 阅读 · 8 评论 -
选择法复写qsort函数,排序结构体!
文章目录前言:思维导图函数作用:参数分析:函数原型1. void * base2.size_t num3.size_t width4.**int** **(__cdecl** compare* **)(const** **void** * elem1, **const** **void** * elem2)排序结构体代码初始化结构体函数打印结构体函数种子交换元素函数my_sqort全部代码结果展示总结前言:博主实力有限,博文有什么错误,请你扶正qsort内部是使用快排法对缓冲区(数组原创 2021-10-01 14:05:52 · 825 阅读 · 5 评论 -
辗转相除法证明
文章目录前言补充:辗转法证明总结:前言博主实力有限,博文有什么错误,望各位大佬,不吝赐教,非常感谢!本文证明 求2数的最大公约数的辗转相除法。补充:2数互质:公因数只有1的2个非0自然数,称为互质。如果 2个数a,b存在最大公约数 c即c=gcd(a,b),(gcd是最大公约数的意思)设 a = mc;b =nc;那么 m与n必互质证明 如果 m,n不互质,那么m = pd;n=qd;可以知道 a= pdc; b= qdc; 因此 cd将会是 a,b的最大公约数,这与c是原创 2021-09-15 22:25:04 · 2355 阅读 · 13 评论 -
操作符sizeof与函数strlen哪些事
文章目录前言:操作符sizeof()size_t strlen( const char * str)关于数组的必要理解例题经典再现前言:博主实力有限,博文有什么错误,请你斧正!非常感谢!本文讨论操作符 sizeof与函数strlen()操作符sizeof()sizeof是操作符,不是函数(!!!!!!!!)sizeof 只是测定数据类型(数组类型,指针类型等)在`所占内存的大小,单位字节,```不具有改变测定的数据``的性质取地址 操作符‘&’原创 2021-09-03 17:05:02 · 376 阅读 · 26 评论 -
数组的子集
前言:博主实力有限,博文有什么错误,请你斧正,非常感谢!因为数组子集个数是2^n这和n位二进制的所有排序结果个数(2^n)相同,另外数组中的数在所有子集中只有在,与不在2种情况。因此将1表示为存在,0表示不存在。int arr [4]={1,2,4,5};0 0 0 0代表空子集0 1 0 1 代表子集{1,4}1 1 1 1代表子集{1,2,4,5}void show(int* p, int x, int sz){ int i = 0;//用于记录位数 int原创 2021-08-20 21:57:03 · 594 阅读 · 4 评论 -
整形,浮点型数据在内存中的存储,以及大小端字节序
前言:博主实力有限,博文有什么错误,请你斧正,非常感谢!本篇博文需要一定:原,反,补码的知识。和整形截断,整形提升,算术提升的知识数据类型整形数据的存储对于整形数据在内存中存入的是二进制补码!!!只有整形数据,我们才谈原,反,补码的事对于浮点型数据的存储见后面内容。数据类型的声明原因不知道你是否想过,为什么当我们定义一个变量时必须声明它的类型?1**.这是因为:数据虽然存入的是二进制补码。但是同样一段二进制补原创 2021-08-20 00:48:08 · 687 阅读 · 4 评论 -
整形截断与提升,以及算术提升
文章目录前言:思一思:整形截断整形提升整形提升,整形截断的用处算术提升练一练前言:1.博主实力有限,博文有什么问题,请你斧正,非常感谢!2.本文需要一定的数据的原码,反码,补码基知识础:见我另外一篇博客:原,反,补码思一思:如果你会,那么就不需要占用你的时间。如果你不是太会,希望本文对你有所帮助。整形截断1.当高字节的向低字节转变时会发生:整形截断即在高字节数据的二进制补码,截取符合低字节数据变量大小的二进制补码,放于变量内存中。截断原创 2021-08-20 00:29:13 · 415 阅读 · 1 评论 -
原,反,补码
文章目录前言:原码反码补码前言:博主实力有限,博文有什么错误,请你斧正,非常感谢!只有对于整形数据,我们才考虑原,反,补码(char 实质也是整形)正数的原,反,补码相同。因此在考虑的原,反,补时。只需要考虑负数``的原,反,补码。原码1.原码是十进制直接算出的二进制位整数的二进制原码计算过程:对整数/2,后记录余数。然后继续对商/2,记录余数。直到为商0以第一次记录的余数为最低位,在32为下依次补齐,不够补0在计算负原创 2021-08-20 00:13:28 · 1263 阅读 · 1 评论 -
伪随机数的生成
这里写目录标题前言:一.随机数的生成需要的库函数:rand,srand,time二.rand与srand的关系(随机数的生成)分析:成功版感言:本文是为了后面博文设计的。前言:1.博主实力有限,博文有什么错误,请指出。万分感谢!2.对像猜数字,三子棋,扫雷等小游戏我们都需要解决的问题:随机数的生成(其实是伪随机数的生成)一.随机数的生成需要的库函数:rand,srand,timeint rand(void )1.rand函数内部通过线性同余法实现,他并不是真的原创 2021-08-13 21:44:48 · 1710 阅读 · 3 评论