muduo阅读涉及部分零散知识备忘

Muduo涉及知识点总结 shared_ptr以const reference方式作为函数参数传递。只要有指向对象x的shared_ptr存在对象x就不会析构,当指向x的最后一个shared_ptr析构或reset时x会被销毁.weak_ptr不控制对象生命期,但是它知道对象是否活着:若对象还活着它可以提升为share…

阅读详细 »

C++中operator new 和 new operator小结以及对new 和 delete初步理解

最近在看C++ Prime,注意到new 和 delete 并没有原来想象的那么简单。记得上学期学C语言时,学习的sizeof和strlen区别时,有一条为sizeof不是函数在这里,和sizeof类似,new 和delete也不是函数,它们都是C++定义的关键字,通过特定的语法可以组成表达式。我们先看看…

阅读详细 »

中缀表达式转换为后缀表达式并求值(栈的使用)

  中缀表达式如2*3+(4-3), 其运算符一般出现在操作数之间, 因此称为中缀表达式,也就是大家编程中写的表达 式。编译系统不考虑表达式的优先级别, 只是对表达式从左到右进行扫描, 当遇到运算符时, 就把其前面的两 个操作数取出, 进行操作。为达到上述目的, 就要将…

阅读详细 »

马踏棋盘的实现

问题描述 设计一个国际象棋的马踏棋盘的演示程序 基本要求 将马放到国际象棋的8*8棋盘board上的某个方格中,马按走棋规则进行移动,要求每个方格只进入一次,走遍棋盘上的64个方格,编写递归程序,求出马的行走路线,并按求出路线,将数字12 3.。。…

阅读详细 »

归并排序的实现(排序算法c语言描述)

归并排序法是将两个(或两个以上)有序表合并成一个新的有序表,是建立在归并操作上的一种有效的排序算法,具体是把待排序序列分为若干个子序列,每个子序列是有序的。然后再把有序子序列合并为整体有序序列。该算法是采用分治法的一个非常典型的应用。所以归并排序的…

阅读详细 »

Linux C语言动态库及静态库

假设在math目录下已编辑好add.c sub.c div.c mul.c func_point.c文件,func_point.c为包含main()的源文件!    动态库的制作: 方法一: [crayon-5ba2bf169ff5d440718297/] 方法二: [crayon-5ba2bf169ff6c455511008/]   方法三: [crayon-5ba2bf169ff75…

阅读详细 »

再议C语言(编译与链接)讲座整理

编译的概念:编译程序读取源程序(字符流),对之进行词法和语法的分析,将高级语言指令转换为功能等效的汇编代码,再由汇编程序转换为机器语言,并且按照操作系统对可执行文件格式的要求链接生成可执行程序。 编译的完整过程:C源程序-->预编译处理(.c)-->…

阅读详细 »

再议C语言第二节(数组与指针)讲座整理

首先先区分一下两个容易混淆的定义: 数组指针是指向数组首元素的地址的指针,其本质为指针(这个指针存放的是数组首地址的地址,相当于2级指针,这个指针不可移动); 指针数组是数组元素为指针的数组,其本质为数组。例如:*p[2]是指针数组,实质是一个数组,里面…

阅读详细 »

再议C语言第一节(C类型与运算)讲座整理

一、数据类型 1、float和double 首先先分享一下浮点数的相关知识。 浮点数是属于有理数中某特定子集的数的数字表示,在计算机中用以近似表示任意某个实数。具体的说,这个实数由一个整数或定点数(即尾数)乘以某个基数(计算机中通常是2)的整数次幂得到,这种表示方…

阅读详细 »

linux C编程常见断错误总结

定义   所谓的段错误就是指访问的内存超出了系统所给这个程序的内存空间,通常这个值是由gd tr来保存的,他是一个48位的寄存器,其中的32位是保存由它指向的 gdt表,后13位保存 相应于gdt的下标,最后3位包括了程序是否在内存中以及程序的在cpu中的运行级…

阅读详细 »