
学习笔记
文章平均质量分 66
七夜落幕丶
这个作者很懒,什么都没留下…
展开
-
C和指针读书笔记(第九章)
1. 字符串以字符串常量的形式存储与字符数组中。字符串以NUL字节结尾,但NUL不是字符串的一部分,所以字符串的长度不包括NUL字节,局势它所包含的字符个数。头文件string.h包含了使用字符串函数的原型和声明。2. 计算字符串参数的长度#include<stdio.h>#include<string.h>#include<stddef.h>size_t strlen(char const *原创 2016-10-05 16:48:55 · 342 阅读 · 0 评论 -
关于Linux编程的一些记录
1. 编译libpcap的C文件时,gcc要加上 -lpcap2. 编译线程C文件 ,gcc要加上 -lpthread3. 多文件同时编译(a.c, a.h, b.c, b.h, main.c(包含a.h和b.h))gcc a.c b.c main.c -o main //如果有链接库就在后面加上要链接的库4. 打日志时候用, 在普通日志函数外套一层宏定义, 专...原创 2016-11-29 10:23:19 · 340 阅读 · 0 评论 -
vim的使用方法记录
自动补全:youcompleteme ubuntu安装步骤sudo apt-get install vimsudo apt-get install vim-youcompletemesudo apt-get install vim-addon-managervam install youcompleteme:行号:跳转 :$:跳转到最后一行 /查找对象:查找 ctrl+*:查找当前光标原创 2016-12-19 21:34:50 · 260 阅读 · 0 评论 -
C和指针读书笔记(第十五章)
1. perror()函数用于向用户报告错误,原型定义于stdio.hvoid perror(char const * message);如果message不是NULL并且指向一个非空的字符串,perror函数就打印这个字符串,后面跟一个分号和一个空格,然后打印出一条用于解释errno当前错误代码的信息。2. exit用于终止程序的执行,原型定义于stdio.hvoid exit(int statu原创 2017-01-07 12:24:27 · 317 阅读 · 0 评论 -
C++ Primer Plus : 2-开始学习C++
1. 位于函数名前面的部分叫做函数返回类型,它描述的是函数返回给调用它的函数的信息。函数名后括号钟的部分叫做形参列表或参数列表,它描述的是从调用函数传递给被调用的函数的信息。2. 输出时,>操作符从输入流中抽取字符。3. 类是用户定义的一种数据类型。要定义类,需要描述它能够表示什么信息和可对数据执行哪些操作。类之于对象就像类型之于变量。原创 2017-01-13 16:14:53 · 160 阅读 · 0 评论 -
C和指针读书笔记(第十六章)
1. 整型函数 这组函数返回整型值。这个函数分为三类:算数,随机数和字符串转换。函数原型位于stdlib.h 1.1. 算数int abs(int value); //返回参数绝对值long int labs(long int value); //作用对象长整型div_t div(int numerator, int denominator); //第二个参数(分母)除以第一个参原创 2017-01-10 11:27:27 · 405 阅读 · 0 评论 -
C++ Primer Plus : 3-处理数据
1. 超越整型限制的数据 C++不保证符号整型超越限制(上溢和下溢)时不出错//short范围:-32768~32767//unsigned short范围:0~65535#include using namespace std;int main(){ short i = 32767; unsigned short j = 0; cout "1:" //1原创 2017-02-22 18:07:42 · 366 阅读 · 0 评论 -
C-断言(assert)
1、assert宏的原型定义在#include <assert.h>void assert( int expression );assert的作用是现计算表达式 expression ,如果其值为假(即为0),那么它先向stderr打印一条出错信息,然后通过调用 abort 来终止程序运行。2、使用assert的缺点是,频繁的调用会极大的影响程序的性能,增加额外的开销。在调试结束后,可以通过在包含转载 2017-06-21 14:18:02 · 639 阅读 · 0 评论 -
C++链表简单功能实现
实现的是一个小型图书馆的程序,功能包括增加新书,以及读者借书和还书等。 代码如下:#include <iostream>#include <string>#include <list>#include <algorithm>#include <cstring>using namespace std;class Patron;class Book{public: Book(){p原创 2017-11-07 10:57:48 · 444 阅读 · 0 评论 -
C++类模板
一、类模板定义及实例化1、类模板定义template<class 模板参数表>class 类名{// 类定义......};其中,template 是声明类模板的关键字,表示声明一个模板,模板参数可以是一个,也可以是多个,可以是类型参数 ,也可以是非类型参数。类型参数由关键字class或typename及其后面的标识符构成。非类型参数由一个普通参数构成,代表模板定义中的一个常量。template<转载 2017-11-08 21:49:32 · 137 阅读 · 0 评论 -
C++ 虚析构函数
1.对于一个空类型,sizeof求得的结果是1 这就是实例化的原因(空类同样可以被实例化),每个实例在内存中都有一个独一无二的地址,为了达到这个目的,编译器往往会给一个空类隐含的加一个字节,这样空类在实例化后在内存得到了独一无二的地址,所以空类所占的内存大小是1个字节。 一旦类中有其他的占用空间成员,则这1个字节就不在计算之内。 增加了构造函数和析构函数后: 由于构造函数和析构函数的调用与类原创 2017-10-25 16:44:54 · 200 阅读 · 0 评论 -
C++ 二叉树实现词频分析
通过二叉树存单词,并且对总共的单词数量进行计数,二叉树自适应的将出现频率高的单词往上移动以减少二叉树的搜索时间。 代码如下/***********************genSplay.h***********************/#ifndef _GENSPLAY_H_#define _GENSPLAY_H_#include <iostream>using namespace std原创 2017-11-22 10:28:34 · 1080 阅读 · 1 评论 -
C语言中使用静态函数的好处
静态函数会被自动分配在一个一直使用的存储区,直到退出应用程序实例,避免了调用函数时压栈出栈,速度快很多。 关键字“static”,译成中文就是“静态的”,所以内部函数又称静态函数。但此处“static”的含义不是指存储方式,而是指对函数的作用域仅局限于本文件。 使用内部函数的好处是:不同的人编写不同的函数时,不用担心自己定义的函数,是否会与其它文件中的函数同名,因为同名也没有关系。 c语言中转载 2016-12-03 15:34:13 · 1268 阅读 · 0 评论 -
C和指针读书笔记(第八章)
1. 数组名不用指针常量表示的两种情况:数组名作为sizeof的操作数:sizeof返回数组的长度,而不是指向数组的指针的长度。数组名作为操作符&的操作数:取一个数组名的地址所产生的是一个指向数组的指针,而不是指向某个指针常量值的指针2. 指针的效率: 首先声明(适用于接下来的所有函数):#define SIZE 50;int x[SIZE];int y[SIZE]原创 2016-09-29 20:12:18 · 314 阅读 · 0 评论 -
C和指针读书笔记(第十章)
1.原创 2016-10-08 21:58:26 · 353 阅读 · 0 评论 -
C和指针读书笔记(第一章)
C和指针读书笔记1.“/* */”不能真正将代码从源文件删除,要从逻辑上删除一段C代码,更好的方法是使用#if#if 0 statements#endif2.标准I/O库: stdio.h 定义了EXIT_SUCCESS 和 EXIT_FAILURE的函数库:stdlib.h 操纵字符串:string.h 3.*C语言中,数组参数是以引用的方式进行传递的,而标量和常量则是原创 2016-09-24 15:24:18 · 347 阅读 · 0 评论 -
C和指针读书笔记(第三章)
1. 整形:字符,短整型,整型,长整型,分为有符号和无符号两种。 长整型至少应该和整型一样长,整型至少应该和短整型一样长。2. 当一个字符串常量出现于一个表达式中,表达式所使用的值就是这些字符串存储的地址,而不是这些字符本身。因此可以把字符串常量赋值给一个“指向字符的指针”吗或者指向这些字符所存储的地址,但是不能把字符串常量赋值给一个字符数组,因为字符串常量的直接值是一个指针。3. 说明符可能是一原创 2016-09-25 20:58:44 · 349 阅读 · 0 评论 -
C和指针读书笔记(第四章)
1. 空语句值包括一个分号,适用于语法要求出现一条完整的句子但是不需要执行任何任务的情况。2.原创 2016-09-25 21:27:07 · 237 阅读 · 0 评论 -
C和指针读书笔记(第五章)
1. 算术操作符:+,-,*,/,% 除了取模运算,其余几个操作符既可以用于整型值也可用于浮点型值。2. 移位操作符:<<,>>3. 位操作符:AND(&),OR(|),XOR(^)【异或(相同为0,相异为1)】4. 复合赋值符:+=,-=,*=,/=,%=,<<=,>>=,&=,^=,!= 赋值运算符:=5. 单目运算符:!:逻辑反++和–:自增和自减-和+:用于产生操作数的负值和操作原创 2016-09-26 17:02:45 · 256 阅读 · 0 评论 -
C和指针读书笔记(第十一章)
1.原创 2016-10-10 21:49:11 · 299 阅读 · 0 评论 -
C和指针读书笔记(第六章)
1. 通过一个指针访问它所指向的地址的过程称为间接访问或者解引用指针。这个用于执行间接访问的操作符是单目操作符 * 。2. NULL指针是一个特殊的指针变量,表示某个特定的指针不指向任何东西,要使一个指针变量为NULL,可以给它赋一个零值。 对指针进行解引用操作可以获得它所指向的值,但是NULL指针并未指向任何东西,所以对NULL指针进行解引用操作使非法的。在对指针进行解引用操作之前必须原创 2016-09-26 21:56:42 · 418 阅读 · 0 评论 -
C和指针读书笔记(第十二章)
1. 单链表P2351.1 单链表的结构typedef struct NODE{ STRUCT NODE *link; int value;}Node;//根指针只是一个指针//链表最后一个节点的指针字段的值为NULL1.2 单链表的插入原创 2016-10-11 21:31:35 · 430 阅读 · 0 评论 -
C和指针读书笔记(第十三章)
1. 指向指针的指针 赋值int i;int *pi;int **ppi;//把ppi初始化指向变量pippi = π//把pi(通过ppi间接访问)初始化为指向变量i*ppi = &i;2. int f; //一个整形变量int *f; //一个指向整型的指针int* f, g; //声明了一个指针f和一个普通的整形变量gint f();原创 2016-10-13 19:59:37 · 299 阅读 · 0 评论 -
C和指针读书笔记(第七章)
1. 真函数是从表达式内部调用的,它必须返回一个值用于表达式的求值。这类函数的return语句必须包含一个表达式。通常表达式的类型就是函数声明的返回类型,只有当编译器可以通过寻常算术转换把表达式的类型转换为正确的类型时,才允许返回类型与函数声明的返回类型不同的表达式2. 传递给函数的标量参数是传值调用的。传递给函数的数组参数在行为上就像它们是通过传址调用的那样。3. 交换原创 2016-09-27 21:42:24 · 520 阅读 · 0 评论 -
C和指针读书笔记(第十四章)
1. #define的用法 #define指令把一个符号名与任意的一个字符序列联系在一起#define name stuff;//每当有符号name出现在这条指令之后,预处理器就会把它替换成stuff#define reg register;//为关键字register声明一个简短的别名#define do_forever for( ; ; );//声明一个更具描述性的符号来代替无限循原创 2016-10-15 16:06:37 · 250 阅读 · 0 评论 -
C++ trie实现拼写检查
trie:用键值的一部分来确定查找路径的树称为trie节点是一个对象,包含以下成员:一个叶/非叶节点标志,一个单词结束标志,一个指向字符串的指针,以及一个指向指针数组的指针,该指针指向同样类型的结构class TrieNonLeafNode{public: TrieNonLeafNode(){ } TrieNonLeafNode(char); //~TrieNonLeaf原创 2017-12-07 10:36:16 · 1137 阅读 · 0 评论