计算机
文章平均质量分 59
kang___xi
这个作者很懒,什么都没留下…
展开
-
数据结构之双向链表(C语言实现)
数据结构之双向链表(C语言实现)原创 2016-11-26 08:14:17 · 9604 阅读 · 12 评论 -
深入浅出静态链接和动态链接
作为一名C/C++程序员,对于编译链接的过程要了然于胸。首先大概介绍一下,编译分为3步,首先对源文件进行预处理,这个过程主要是处理一些#号定义的命令或语句(如宏、#include、预编译指令#ifdef等),生成*.i文件;然后进行编译,这个过程主要是进行词法分析、语法分析和语义分析等,生成*.s的汇编文件;最后进行汇编,这个过程比较简单,就是将对应的汇编指令翻译成机器指令,生成可...原创 2018-05-06 09:24:48 · 87457 阅读 · 36 评论 -
数据结构之二叉排序树(C语言实现)
一、基本概念1.二叉排序树 二叉排序树(Binary sort tree,BST),又称为二叉查找树,或者是一棵空树;或者是具有下列性质的二叉树:(1)若它的左子树不为空,则左子树上所有节点的值均小于它的根节点的值;(2)若它的右子树不为空,则右子树上所有节点的值均大于它的根节点的值;(3)它的左、右子树也分别为二叉...原创 2018-05-21 23:35:10 · 71108 阅读 · 33 评论 -
程序中出现“烫烫烫烫烫烫烫.......”和“屯屯屯屯屯屯......”的原因
范德萨发原创 2018-05-27 15:10:41 · 10224 阅读 · 0 评论 -
Git常用命令总结
最近在学习Git的常用命令,希望能提高日常的工作效率,下面进行一个总结。 首先说说什么是git,什么是github。git是一个分布式的版本控制系统,简单易用,它的命令有很多,但是常用的只有下面十几个;那什么又是github呢,嗯,它就是传说中的“全球最大的同性交友平台”,开玩笑哈,github就是一个远程项目托管服务器,而且是免费的;当然这个免费也是由代价的,如果你...原创 2018-06-05 22:53:01 · 199 阅读 · 0 评论 -
网络编程教程(五)高级I/O函数
本篇博客讨论和网络编程相关的几个高级I/O函数,分为以下三类: 用于创建文件描述符的函数,包括pipe、dup/dup2函数。 用于读写数据的函数,包括readv/writev、sendfile、mmap/munmap、splice和tee函数。 用于控制I/O行为和属性的函数,包括fcntl函数。一、用于创建文件描述符的函...原创 2018-07-23 22:21:46 · 331 阅读 · 0 评论 -
网络编程教程(六)Linux服务器编程框架
一、服务器编程框架模块 单个服务器程序 服务器机群 I/O处理单元 处理客户连接,读写网络数据 作为接入服务器,实现负载均衡 逻辑单元 业务进程或线程 逻辑服务器 网络存储单元 本地数据库 、文件或缓存 数据库服务器 请求队列 各单元之间的通信方式 各服务器之间的永久TCP连接 I/O处理...原创 2018-07-25 23:02:07 · 3143 阅读 · 0 评论 -
网络编程教程(八)信号和定时器
一、信号1.信号 API(1)发送信号#include <sys/types.h>#include <signal.h>int kill(pid_t pid, int sig);函数功能: 向进程ID为pid的进程发送信号sig函数参数: pid:进程编号 sig:信号值返回值: 函数成功时返回0,失败则返回-1,并设...原创 2018-07-27 19:49:57 · 1037 阅读 · 0 评论 -
C++ string的最常用的用法总结
1.string的构造方法string s(cp);string s(cp, n);string s(s1);string s(s1, pos2);string s(s1, pos2, len2);2.substr()s.substr(pos, n):返回一个string,包含s中从pos开始的n个字符的拷贝。pos的默认值为0,n的默认值为 ...原创 2018-09-18 15:26:17 · 704 阅读 · 0 评论 -
常用的寄存器及其功能说明
SS:栈寄存器,共16位,分为三段13+1+2,第一段高13位用于作为索引去GDTR/LDTR中索引段(一般情况下局部变量存放在这个段中)描述符项的信息。DS:数据段寄存器,共16位,分为三段13+1+2,第一段高13位用于作为索引去GDTR/LDTR中索引数据段描述符项的信息。CS:代码段寄存器,共16位,分为三段13+1+2,第一段高13位用于作为索引去GDTR/LDTR中索引代码段描述符项的...原创 2018-04-21 17:46:34 · 3307 阅读 · 0 评论 -
从编写源代码到程序在内存中运行的全过程解析
作为一个C/C++程序员,搞清楚从编写源代码到程序运行过程中发生的细节是很有必要的。这在之前也是困扰我的一个很大问题,因为最近在忙着找实习,一直没有下定决心来写这篇博客,最近才抽时间写。下面的代码除了明显贴出来的以外,其他的都以下面的代码为例进行说明:int gdata1 = 10;int gdata2 = 0;int gdata3;static int gdata4 = ...原创 2018-04-21 17:49:51 · 30815 阅读 · 20 评论 -
《STL源码剖析》中篇----关联式容器
最近花了一些时间,把《STL源码剖析》这本书看了一遍,由于之前C++的语法掌握的还可以,所以看的比较快。我在看的时候对于源代码没有仔细看,只是把它的大概实现过程看了一遍,理解了底层是如何组织数据的,以及关联式容器是如何工作的。我个人觉得,对源代码可以不用看的太仔细,当然如果你对这个很有兴趣,看仔细点更好。 下面我就简单总结一下STL中关联式容器的实现。一、set、map、m...原创 2018-03-21 22:53:59 · 321 阅读 · 1 评论 -
数据结构之单链表(C语言实现)
数据结构之单链表(C语言实现),包括单链表的结构体结构和单链表的常用操作(初始化,插入,删除,查找,销毁等)。原创 2016-11-25 21:26:09 · 2237 阅读 · 0 评论 -
数据结构之循环单链表(C语言实现)
数据结构之循环单链表(C语言实现)原创 2016-11-25 22:42:19 · 2371 阅读 · 0 评论 -
数据结构之队列(C语言实现)
数据结构之队列(C语言实现)在这里将介绍三种队列:数组实现的循环队列、链表队列和具有实用价值的优先级队列。本次只介绍前两种,优先级队列在下一次博客中再单独说明。原创 2016-12-01 19:24:23 · 19316 阅读 · 6 评论 -
数据结构之带优先级的队列(C语言实现)
数据结构之带优先级的队列(C语言实现)原创 2016-12-01 21:48:15 · 5363 阅读 · 4 评论 -
C语言易错点总结
关于C语言使用时的易错点总结。原创 2017-07-28 09:15:19 · 3290 阅读 · 0 评论 -
c++中重载、隐藏和覆盖的区别
一、三者的定义1.重载重载分为普通函数重载、运算符重载和类型重载,在这里我们只介绍普通函数重载,包括全局作用域下的函数重载和类作用域下的函数重载。 (1)函数名相同 (2)参数列表相同(包括参数个数、参数类型和参数顺序) (3)属于同一作用域(必须是在同一个类中的成员函数或者均为全局函数,即基类和派生类中的同名函数不可能构成重载)2....原创 2017-12-15 19:19:12 · 362 阅读 · 3 评论 -
八大排序算法之插入排序
八大排序算法之插入排序 排序分为内部排序和外部排序,内部排序时数据记录在内存中进行排序,适用于数据量比较少的情况;而外部排序因数据量太大,内存一次不能容纳所有的数据,此时需要借助文件来进行排序。 本文这里介绍的八大排序为内部排序,然后通过内部排序来实现一种外部排序。 下面先对排序进行分类如下: 在具体实现排序之前,先介绍三个衡原创 2017-08-01 11:44:22 · 309 阅读 · 0 评论 -
《STL源码剖析》上篇----空间配置器、迭代器、容器和适配器
这几天在看《STL源码剖析》这本书,感觉设计整个STL的人真的是太聪明了,从空间配置器到迭代器,再到序列式容器,环环相扣,让人感觉很严密,很整洁。最近只看完了空间配置器、迭代器和序列式容器这三部分,所以这里先就这三部分做一个小结。一、空间配置器 下面先总体介绍一下空间配置器。空间配置器的作用是在底层为上层的各种容器提供存储空间,需要多少分配多少,一般分配的比你需要的更多...原创 2018-03-15 12:02:14 · 483 阅读 · 0 评论 -
Go语言学习笔记(一)Go语言变量的声明和初始化
由于我以前是学的C/C++语言,所以在博客中会将Go与C/C++进行对比来学习: Go语言作为C语言家族的新派代表,在C语言的定义方法和类型上做了优化和调整,更加灵活易学。今天首先从最简单的变量声明开始进行学习:1.三种声明方式 普通变量的声明有三种方式,第一种和第二种通过关键字var来声明变量,第三种则靠编译器进行推断,分别如下:var ...原创 2019-01-17 10:50:59 · 558 阅读 · 0 评论