C++ | 引用详解 引用是 C++中的一种类型,它为已存在的对象提供了一个别名。引用不是一个独立的对象,它必须在创建时被初始化,并且一旦初始化,它就一直绑定到那个特定的对象。引用的主要目的是提供一种更方便、更安全的方式来操作对象,避免不必要的复制和指针操作的复杂性。C++引用是一种强大的工具,它为我们提供了一种方便、高效的方式来操作对象。引用的主要特点包括必须初始化、与原始对象具有相同的内存地址、没有独立的存储空间以及在参数传递和返回值方面的高效性。与指针相比,引用具有更简单的语法和更安全的操作方式。
Linux | 进程间通信:管道、消息队列、共享内存与信号量 数据传输:一个进程需要将它的数据发送给另一个进程。资源共享:多个进程之间共享同样的资源。通知事件:一个进程需要向另一个或一组进程发送消息,通知它(它们)发生了某种事件,例如进程终止时要通知父进程。进程控制:有些进程希望完全控制另一个进程的执行,如调试进程希望能够拦截另一个进程的所有陷入和异常,并能够及时知道它的状态改变。管道是从一个进程连接到另一个进程的一个数据流。在 Unix 系统中,管道的使用和文件一致,迎合了“Linux 一切皆文件思想”。共享内存区是最快的 IPC 形式。
算法 | 基础排序算法:插入排序、选择排序、交换排序、归并排序 该博客系统阐述了排序算法的概念及运用。详细介绍了插入排序、选择排序、交换排序、归并排序等常见算法的原理与实现方式,分析了其时间复杂度、空间复杂度及稳定性,为深入理解排序算法提供了专业且全面的参考。
Linux | 进程控制(上):进程终止(strerror函数、errno宏、_exit() 与 exit()) 文本主要讲解Linux中的进程终止相关内容,包括退出码、strerror函数、errno宏、_exit()和exit()等内容
C++ | 内存管理:new、delete运算符 & operator new、operator delete函数 本文详细讲解C++的内存管理相关内容,包含new、delete等运算符和operator new、operator delete函数等内容
C++类和对象(下):初始化列表、explicit关键字、友元函数、友元类 虽然上述构造函数调用之后,对象中已经有了一个初始值,但是不能将其称为对对象中成员变量的初始化, 构造函数体中的语句只能将其称为赋初值,而不能称作初始化。其中,对于引用成员变量和const修饰成员变量,必须在变量定义的时候(private中是对变量的声明)进行初始化,所以无法在函数体内进行初始化,但是可以通过初始化列表进行初始化。友元函数可以直接访问类的私有成员,它是定义在类外部的普通函数,不属于任何类,但需要在类的内部声 明,声明时需要加friend关键字。友元提供了一种突破封装的方式,有时提供了便利。
Linux 进程 | 进程地址空间 当我们使用fork()函数生成一个子进程的时候,子进程会对将要访问的父进程的内容进行写时拷贝,但是会发现子进程和父进程对于同一个全局变量进行访问更改等操作的时候,这个变量的地址是不变的,也就是说同一个地址可能会有两个值,因为这里的地址并不是物理地址,而是虚拟地址(我们平时写程序用到的地址相关的内容一般都是虚拟地址)。在32位系统下的寻址空间是4GB。会发现前文所说的现象,同一个变量,子进程对其将要访问的变量进行写时拷贝,但是父子进程中的val确是同一个地址,因此这里的地址是虚拟地址而非物理地址。