摘要:
C语言字符串操作函数 1.strlen strlen用于求一个C风格字符串的长度,函数原型为 返回值为字符串的长度,当遇到'\0'时,认为字符串结束,'\0'不算入长度中。 结果测试:11 测试结果符合预期,下面以三种方式实现自己的strlen函数。 第一种使用一次遍历字符串,当字符不为'\0'时, 阅读全文
摘要:
1.进程概念 在用户层面,进程是一次程序的动态运行实例, 在操作系统层面,进程是操作系统进行资源调度和分配的基本单位,每一个进程都有自己独立的地址空间和运行状态。 操作系统为进程创建了一系列的数据结构来管理进程。操作系统会为每个进程创建一个虚拟地址空间和进程控制块。 2.虚拟地址空间 在32位操作系 阅读全文
摘要:
常见的shell命令总结 本文总结部分常见的shell命令,希望像我这样的linux小白在熟悉这些命令后,能够基本应付小白阶段遇到的问题 1.cd cd 后面跟上目录名,可以进入这个目录,目录写法有绝对路径与相对路径 绝对路径:以根目录开始,明确的指出要到达的目录的全名,例如 绝对路径显得相对繁琐 阅读全文
摘要:
系统调用和库函数与部分常见的底层文件访问系统调用 1.系统调用与库函数的区别 系统调用是操作系统内核提供的函数,在内核态运行。直接使用系统调用的效率非常低,因为 1.使用系统调用会影响系统的性能,在执行系统调用时,操作系统必须从用户态切换到内核态,然后再返回用户态。 频繁的切换会消耗大量的资源(需要 阅读全文
摘要:
4.赋值运算符重载函数 1.函数的作用,参数和返回值 1.作用 赋值运算符重载函数用于类对象的赋值操作,当我们未实现该函数时,编译器会自动为我们实现该函数。 2.参数 赋值运算符重载函数的参数是常引用类型的类类型,声明为常量的好处是可以接受常量参数和非常量参数, 声明为引用类型使得参数没有了临时对象 阅读全文
摘要:
二叉查找树 1.概念 二叉排序树可以是一颗空树,或者是具有以下性质的树: 1.左子树如果不为空,左子树上所有节点的值均小于等于根节点的值 2.右子树如果不为空。右子树上所有节点的值均大于等于根节点的值 3.左右子树均为二叉排序树 2.实现 我们讨论二叉树的查找,插入,删除,遍历,线索化。 1.查找 阅读全文
摘要:
1.插入排序 1.排序思想 插入排序的主要思想就是把每一个元素插入合适的位置,以升序来分析,首先分析前两个元素,如果data[0]大于data[1],交换他们的次序,这时,前两个元素已经是已经排好序的。考虑data[2]: 如果data[2]小于data[0]和data[1],将data[1]和da 阅读全文
摘要:
3.析构函数 1.析构函数的概念 析构函数可以理解为反向的构造函数,他在对象生命期结束时,调用析构函数释放对象的内存空间。具体的析构函数在这几种情况下调用: 1.堆上的空间(使用new创建的对象)调用delete时 2.本地对象超出作用域 3.临时对象的销毁 4.显式的调用析构函数 2.析构函数注意 阅读全文
摘要:
2.拷贝构造函数 1.拷贝构造函数的概念 拷贝构造函数是一种特殊的构造函数,负责类对象之间的复制,与构造函数相同,当我们没有实现拷贝构造函数时,编译器会为我们产生默认拷贝构造函数,举个栗子: class A { public: A(int _a,int _b) : a(_a),b(_b){ std: 阅读全文