
C/C++语言和算法
文章平均质量分 80
记录C C++ 和算法相关
sdkdlwk
做一位名副其实的工匠
合作,请私信!
展开
-
MCU 串口接收环形缓冲区的实现
环形缓冲区。原创 2024-03-03 18:13:20 · 799 阅读 · 0 评论 -
C语言-qsort的使用
比较函数为自定义函数:其两个参数为void*类型指针的elem1和elem2 ,返回参数为整形int参数类型为void*原因:不清楚需比较元素的类型是什么,所以通过void*类型指针的特点(可以接收任意类型的地址)来接收。const修饰其两个比较参数不可被更改。返回值有三种情况:< 0 : elem1 小于 elem2= 0 : elem1 等于 elem2> 0 : elem1 大于 elem2。原创 2024-01-26 10:55:48 · 11516 阅读 · 0 评论 -
C语言中计算结构体的大小
因此我们似乎很容易就能计算出这个结果:4+20+4+4=32字节但事实上结构体的大小并不是通过这样简单累加计算的。原创 2024-01-25 16:37:30 · 11523 阅读 · 0 评论 -
“结构体名”和“结构体名是个指针”的区别
“结构体名”和“结构体名是个指针”的区别[cpp] view plain copy typedef struct { int a; double b; }emp_i, *pemp_i; //typedef 了两个新的数据类型(结构体),其中一个是指针方式的名字 int main(void) { cha转载 2017-04-24 10:07:25 · 9021 阅读 · 2 评论 -
史上最清晰的红黑树讲解
TreeSet and TreeMap总体介绍之所以把TreeSet和TreeMap放在一起讲解,是因为二者在Java里有着相同的实现,前者仅仅是对后者做了一层包装,也就是说TreeSet里面有一个TreeMap(适配器模式)**。因此本文将重点分析TreeMap。JavaTreeMap实现了SortedMap接口,也就是说会按照key的大小顺序对Map中的元素进行排序,key大小的...转载 2019-05-10 13:55:19 · 374 阅读 · 0 评论 -
Android版数据结构与算法汇总十二章
Android版数据结构与算法(一):基础简介https://www.cnblogs.com/leipDao/p/9140726.htmlAndroid版数据结构与算法(二):基于数组的实现ArrayList源码彻底分析https://www.cnblogs.com/leipDao/p/9391755.htmlAndroid版数据结构与算法(三):基于链表的实现LinkedList...原创 2019-05-10 13:40:53 · 18157 阅读 · 0 评论 -
C语言中堆和栈的区别
C语言中堆和栈的区别一.前言:C语言程序经过编译连接后形成编译、连接后形成的二进制映像文件由栈,堆,数据段(由三部分部分组成:只读数据段,已经初始化读写数据段,未初始化数据段即BBS)和代码段组成,如下图所示:1.栈区(stack):由编译器自动分配释放,存放函数的参数值,局部变量等值。其操作方式类似于数据结构中的栈。2.堆区(heap):一般由程序员分配释放,若程序员不释转载 2017-11-30 21:11:11 · 195 阅读 · 0 评论 -
main参数的含义
main函数两个参数的意义例如int main(int argc,char *argv[]){}int main(int argc,char **argv){}编译链接后生成 a.exe,那么在命令行调用时如 a.exe -a1 -a2则a.exe是要运行的程序名 -a1 是第一个参数 -a2 是第二个参数 这两个参数通过 argc原创 2017-03-22 17:21:58 · 582 阅读 · 0 评论 -
C语言之函数指针
函数指针是指向函数的指针变量。 因而“函数指针”本身首先应是指针变量,只不过该指针变量指向函数。这正如用指针变量可指向整型变量、字符型、数组一样,这里是指向函数。如前所述,C在编译时,每一个函数都有一个入口地址,该入口地址就是函数指针所指向的地址。有了指向函数的指针变量后,可用该指针变量调用函数,就如同用指针变量可引用其他类型变量一样,在这些概念上是大体一致的。函数指针有两个用原创 2017-03-22 18:12:40 · 269 阅读 · 0 评论 -
C语言之指针函数
指针函数是指带指针的函数,即本质是一个函数。函数都有返回类型(如果不返回值,则为无值型),只不过指针函数返回类型是某一类型的指针。定义首先它是一个函数,只不过这个函数的返回值是一个地址值。函数返回值必须用同类型的指针变量来接受,也就是说,指针函数一定有“函数返回值”,而且,在主调函数中,函数返回值必须赋给同类型的指针变量。格式int *pfun(int, int);返回原创 2017-03-22 18:20:28 · 271 阅读 · 0 评论 -
C语言之assert的用法
assert宏的原型定义在中,其作用是如果它的条件返回错误,则终止程序执行,原型定义:#include void assert( int expression );assert的作用是先计算表达式expression,如果其值为假(即为0),那么它先向标准错误流stderr打印一条出错信息,然后通过调用abort来终止程序运行;否则,assert()无任何作用。宏asser原创 2017-03-22 19:32:18 · 419 阅读 · 0 评论 -
C语言之volatile关键字的应用
一个定义为volatile的变量是说这变量可能会被意想不到地改变,这样,编译器就不会去假设这个变量的值了。精确地说就是,优化器在用到这个变量时必须每次都小心地重新读取这个变量的值(From Memory),而不是使用保存在寄存器里的备份。volatile的意义是: 比如两个线程在运行中。第一个线程已经初始化,将变量a载入了缓存后,这时候第二个线程改变了a的值。如果a没有用vo原创 2017-03-23 08:42:07 · 1203 阅读 · 0 评论 -
C语言之循环结构中break、continue、goto、return和exit的区别
转载出处:http://blog.youkuaiyun.com/u012917700/article/details/49885667循环结构中break、continue、goto、return和exit的区别(1)在此之前讲解循环结构时不止一次提到了break语句和continue语句的使用,接下来看看break、continue、goto、return和exit在循环结构中的区别和注原创 2017-03-24 15:31:07 · 22109 阅读 · 2 评论 -
C语言指针段错误
一个网友问了我一个问题,一个C程序运行出现了段错误,这个问题非常好,很多初学者都容易犯这个错误,具体代码如下:这个编译没有问题,但是运行是段错误 Segmentation fault因为你定义了一个结构体指针p,用来指向此类结构体,但是你却没有给他赋值,此时p的值为NULL,你并没有在内存中为p分配任何空间,所以p->a=1这句就会出段错误。修改方法1:可原创 2017-05-04 10:19:07 · 3048 阅读 · 0 评论 -
C语言之对队列、结构体、指针、数组的理解
C语言之对队列、结构体、指针、数组的理解附测试例子#include #include #define QueueSize 100typedef unsigned char datatype;//队列的数据元素typedef struct { int front; int rear; int count; //用于计数原创 2017-03-24 17:47:31 · 1508 阅读 · 0 评论