自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(13)
  • 收藏
  • 关注

原创 C++右值引用(&&)

右值引用是一种新的引用类型,“右值引用” 又被称为“具名右值引用”(Named Rvalue Reference),其定义形式为:Type &&var;其中 Type 表示变量的类型,var 表示变量名。与传统的左值引用不同,右值引用所引用的对象是一个右值。简单来说,右值对象是指其生命周期即将结束的对象,例如一次函数调用的返回值、临时变量等。本文介绍了右值引用的定义和使用场景,以及如何使用 std::move() 函数将左值转换为右值来实现对象的移动。

2023-04-05 18:06:02 2429 1

原创 进程间通信--管道通信和共享内存

数据传输:一个进程需要将它的数据发送给另一个进程资源共享:多个进程之间共享同样的资源。通知事件:一个进程需要向另一个或一组进程发送消息,通知它(它们)发生了某种事件(如进程终止时要通知父进程)。进程控制:有些进程希望完全控制另一个进程的执行(如Debug进程),此时控制进程希望能够拦截另一个进程的所有陷入和异常,并能够及时知道它的状态改变。

2023-03-19 15:42:31 343 1

原创 Linux进程概念

基本理解:加载到内存中的程序内核观点:内核数据结构 + 进程对应的磁盘代码当多个进程被加载到内存中的时候,操作系统就要对它们进行管理,那么我们就得先对加载进来的程序进行描述(PCB)并组织(用特定的数据结构)起来,图中使用的是链表。3.2进程状态为了弄明白正在运行的进程是什么意思,我们需要知道进程的不同状态。一个进程可以有几个状态(在Linux内核里,进程有时候也叫做任务)下面的状态在kernel源代码里定义:

2023-03-06 15:21:31 159

原创 Linux环境变量(查看、增加和删除)

环境变量(environment variables)一般是指在操作系统中用来指定操作系统运行环境的一些参数如:我们在编写C/C++代码的时候,在链接的时候,从来不知道我们的所链接的动态静态库在哪里,但是照样可以链接成功,生成可执行程序,原因就是有相关环境变量帮助编译器进行查找。环境变量通常具有某些特殊用途,还有在系统当中通常具有全局特性

2023-03-04 19:09:08 658

原创 C++const关键字

C++中被const修饰的变量会被认为是常量,还具有替换的作用,编译器在编译的时候在程序中看到对应的变量会直接用常量中的内容替换。*p刚开始也是10,然后直接找到a对应的地址之后将其中的内容修改成了20,所以*p打印的就是20。一般值传递不需要用const修饰,因为在调用函数的时候先将原函数的值拷贝一份过去给被调用的函数,在被调用函数中对该值的修改不会对原函数中的值有任何影响。但是对于自定义类型,传参的时候尽可能的使用传引用来代替传值。因为对象一般都含有较多的数据成员,当其作为函数参数传递时,得拷

2023-01-15 01:06:32 80

原创 Linux文件的基本权限与修改

第一个字符:文件类型:在linux系统中不以文件名的后缀来区分文件属性,但是其他的应用会根据不同的后缀来进行区分,比如gcc编译的时候得是.c为后缀的源文件。chmod 【】【】+filename (修改文件或者目录的权限)目录文件创建的初始权限为:777普通文件创建的初始权限为:666实际创建的权限为:初始权限 & (^umask)查看umask直接对话框输入umask回车就行,修改的话直接umask + 数字就ok。

2022-12-29 16:03:46 509

原创 Linux查看文件:cat、more、less、head和tail

查找其中的内容:先输入/(斜杠)再输入要查找的内容,就会显示查找的内容以及附近的内容。:默认显示满屏的内容,若想查看更多的按下回车键,上下键是没用的,退出的时候按q。支持搜索,大文本一般使用less:例如日志以及代码量较多的代码。:显示的内带上行号,从1开始,空白行不显示行号(不算进去)。:默认查看文件的后十行,head + n 查看后n行。解释为:| 前面处理的结果继续交给 | 后面的处理。:先显示前num行的内容,按回车显示后续内容。: 单独使用:直接显示全部内容。:显示的内带上行号,从1开始。

2022-12-20 00:47:58 324

原创 C++ new/delete(动态内存管理)

数组的长度都是预先就定好了的,不允许出现长度不确定的数组。但是在日常的使用中需要定义的数组大小往往取决于实际中数据量的多少,在这种情况下我们或许会想到分配尽可能大的空间不就行了,但是尽可能大究竟是多大呢?这个不确定可能会导致空间不足或者空间浪费,为了解决这个问题,便有了“动态内存分配”,C++便是通过new/delete来进行动态内存管理。

2022-10-19 20:58:47 974

原创 Linux基本权限(详解)

显示当前目录下文件的详细信息也可以写成Linux下文件的权限位共有十个:按照1333来划分代表文件类型。代表文件拥有者对于该文件所拥有的权限。代表文件所属组对于该文件所拥有的权限。代表其他人(除了拥有者和所属组之外的人)对于该文件所拥有的权限。管道文件r例如:对应的顺序都是rwx,当没有某一个权限的时候,对应的位置会显示。

2022-10-02 18:23:24 4135

原创 排序算法:冒泡排序、选择排序、插入排序、希尔排序、堆排序、归并排序、快速排序

排序算法是最经典的算法知识。因为其实现代码短,应该广,在面试中经常会问到排序算法及其相关的问题。一般在面试中最常考的是快速排序和归并排序等基本的排序算法,并且经常要求现场手写基本的排序算法。如果这些问题回答不好,估计面试就凉凉了。所以熟练掌握排序算法思想及其特点并能够熟练地手写代码至关重要。

2022-09-27 11:44:53 383

原创 memcpy和memmove联系和区别

一、函数的声明 void* memcpy ( void * destination, const void * source, size_t num );void * memmove ( void * destination, const void * source, size_t num );1、memcpy是将源source所指向的num个字节的值拷贝到目标destination所指向的内存中。2、memmove与memcpy的功能基本一致,不同点在于当source指向的空间与destinat

2022-07-14 13:15:43 2245

原创 malloc、realloc、calloc、free动态内存管理

一、malloc(1)函数声明void* malloc (size_t size);(2)函数作用在内存的动态存储区中分配一段长度为size字节的连续空间,返回该空间的首地址。可以使用memset来初始化分配内存中的内容。二、realloc(1)函数声明void* realloc (void* ptr, size_t size);(2)函数作用给一个已分配的空间的指针重新分配内存块,如果条件允许就原地改变,不够就重新分配一个空间,数据拷贝过去,返回新开辟空间的首地址。如果ptr为空指针,则其功能

2022-07-09 01:16:07 559

原创 C++引用(&)详解

对于习惯于使用C语言来进行编写程序的朋友来说,在学习C++的过程当中遇见了引用(&)符 号,可能会有点懵,因为在C语言中的&是取地址符。但是在C++中&有着不一样的用处,当你能够正确掌握C++的&,它将会是你在编写C++程序的道路上的一把提高代码执行效率和增强代码质量的一把利器。引用不是新定义的一个变量,它是给已存在的某个变量取的别名,编译器不会为引用变量开辟空间,它和它所引用的变量共用同一块内存空间。 ......

2022-07-04 17:49:51 26728 3

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除