自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(8)
  • 收藏
  • 关注

原创 Flex规则中的选择符号`|`带来的不匹配问题

怎样的使用选择|是错误的由Flex规则定义如下:选择符号应该匹配仅跟在前面的表达式,或者紧跟在后面的表达式 (其实后面还有一个可选的书写方式,后文会提到)这里面比较重要的是紧跟在,如果你不按照它的规则来,那么你就会遇到如下情况:(error-case 01)...%%"+" | "-" { return yytext[0]; }%%...由于没有紧跟在选择符号的两端,导致规则可以匹配前面的"+“符号,却没有办法匹配后面的”-",因为它被Flex丢弃了。(error-case

2021-04-01 23:43:32 947

原创 C语言用printf读取和输出double类型

对于C语言来说,浮点数类型有两种,double和float,而double类型比float类型的精度要高,换句话说就是前者位数多。C语言中编译器会遵从C语言标准规范的设计,而编译器内部会有整形提升和隐式类型转换,至于细节请查看编译器相关的设计。对于printf函数来说,输出一个double类型的参数,只需要%f即可,并不需要%lf,输出精度会在函数内处理,并不会丢失。而对于scanf函数来说,读取一个double类型的参数,是需要%lf的修饰,如果使用%f读取,则它的精度会丢失。综上:printf输

2021-03-30 20:37:36 49690 2

原创 编译器GCC报错 error: invalid storage class for function

编译器GCC报错 error: invalid storage class for function相信刚开始使用GCC编译C语言的同学都会碰到这个问题,这是什么意思呢?字面意义为:报错:函数有无效的域类型看起来也不是很直观,我们模拟一个报错出来:int f (int a){ if (a != 0){ return a; return a + 1;}static int m (int b){ return b;}int main (void){

2021-03-26 12:35:05 11426

原创 二叉树中常用换算式推导

先统一表示我们知道,节点的度表示:一个节点有几个子节点。如:度为2的节点,有两个子节点。对于二叉树来说,节点度的种类只有三种,我们分别用下面的方法表示树节点:度为2的节点表示为 n2度为1的节点表示为 n1度为0的节点表示为 n0(n0 = n2 + 1) 怎么得到的?往往这样的公式,来自善于观察之人的总结,推导过程其实也不复杂,你需要明白两件事情:节点总数为N的二叉树,仅由三种节点组成,所以有:N=n2+n1+n0树是一对多关系的呈现,每个节点都有唯一一个父节点(除了根节点),更形

2021-03-26 12:18:07 569

原创 没有指针的静态链表

为什么没有指针?其实,C语言的强大和优雅毋庸置疑,但是,你必须相信,在与其相仿的那个年代,还有很多其他的思想占据着科学家们的脑子,他们的想法和其他人并不相同,所以没有指针的语言也是有的。没有指针可用的语言,在读者看来也有很多,比如Java,Python等高级语言,但他们真的没有指针么?想想他们的参数传递,想想他们的数据结构的实现,是不是都有引用的意思?这就是指针对他们的影响,当然,他们也乐于认同并推广指针的威力,只不过,他们需要我们在更加安全的环境下工作,所以对指针和相关的数据结构进行了更高层次的抽象。

2021-03-20 11:21:19 399

原创 线性表之单向循环链表

客官先看看笔者的实现这篇文章来讲述线性表中的单向循环链表,完整的实现请自行导航到gitee托管仓库。传送门:https://gitee.com/prexer/data-structure-and-algorithms所有的样例,都可以通过如下方式进行编译和检测:$ git clone https://gitee.com/prexer/data-structure-and-algorithms.git$ cd data-structure-and-algorithms/liner_list/sing

2021-03-18 22:42:15 204

原创 常被忽视的C语言操作符优先级

由操作符优先级左右的美观和高级声明最开始,在学习C语言的时候,都是为了快速上手,很少有人真正关心C语言操作符的优先级;除非你是科班出身,有老师监督并有考试来约束;那为什么我们都会有这个忽略它的想法呢?首先我们都感觉自己很聪明,这部分用的的时候查查就可以了只要使用括号,没有解决不了的事情,如果有,那就再加一个括号…为了快速投入到工作中,如果你不经常写代码,更不会关心它可能的原因也许还有很多,但不论都是什么,反正操作符的优先级看起来并没有那么重要。本文就要把你的观念正一正,看看学好操作符的优

2021-03-17 11:21:36 489

原创 线性表之单链表

线性表之单链表这篇文章来讲述线性表中的单链表,完整的实现请自行导航到gitee托管仓库。传送门:https://gitee.com/prexer/data-structure-and-algorithms所有的样例,都可以通过如下方式进行编译和检测:$ git clone https://gitee.com/prexer/data-structure-and-algorithms.git$ cd data-structure-and-algorithms/liner_list/single_lin

2021-03-17 00:09:22 164

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除