自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 C++入门--类与对象(下)

虽然上述构造函数调用之后,对象中已经有了一个初始值,但是不能将其称为对对象中成员变量 的初始化,构造函数体中的语句只能将其称为赋初值,而不能称作初始化。比如上述Time类和Date类,在Time类中声明Date类为其友元类,那么可以在Date类中直接 访问Time类的私有成员变量,但想在Time类中访问Date类中私有的成员变量则不行。静态成员变量一定要在类外进行初始化。友元函数可以直接访问类的私有成员,它是定义在类外部的普通函数,不属于任何类,但需要在 类的内部声明,声明时需要加friend关键字。

2023-07-23 16:37:58 95

原创 C++入门--类与对象(中)

内置类型就是语言提供的数据类型,如:int/char...,自定义类型就是我们使用class/struct/union等自己定义的类型,看看 下面的程序,就会发现编译器生成默认的构造函数会对自定类型成员_t调用的它的默认成员 函数。

2023-06-25 01:24:58 113

原创 C++入门--类和对象(上)

/ 类体:由成员函数和成员变量组成// 一定要注意后面的分号class为定义类的关键字,ClassName为类的名字,{}中为类的主体,注意类定义结束时后面分号不能省略。类体中内容称为类的成员:类中的变量称为类的属性或成员变量;类中的函数称为类的方法或者 成员函数。

2023-06-12 18:59:49 136

原创 初识C++

以值作为参数或者返回值类型,在传参和返回期间,函数不会直接传递实参或者将变量本身直接返回,而是传递实参或者返回变量的一份临时的拷贝,因此用值作为参数或者返回值类型,效 率是非常低下的,尤其是当参数或者返回值类型非常大时,效率就更低。ret的值为7,出了作用域c的空间就被系统回收了,Add是传引用返回,此时临时变量是c的别名,ret也是c的别名(它们指向的是同一空间)。注意:如果函数返回时,出了函数作用域,如果返回对象还在(还没还给系统),则可以使用 引用返回,如果已经还给系统了,则必须使用传值返回。

2023-06-11 18:18:11 57

原创 文件系统-被打开的文件

进程可以打开多个文件 ----->系统中一定会存在大量的被打开的文件 ----->被打开的文件,要不要被OS管理起来呢?------>先描述,再组织 ------>操作系统为了管理对应的打开文件,必定要为文件创建对应的内核数据结构标识文件 ----->struct file{ }---->包含大部分文件属性。vim注释太麻烦了先记一下批量注释Ctrl+v---->shift+i-------->j------>//------->Esc。• w :允许写入文件,如果文件不存在,则会创建一个新文件。

2023-06-05 00:23:46 67

原创 结合之前学习的内容写一个简单的shell命令行解释器

fork() --->子进程 执行的 cd---> 子进程有自己的工作目录---> 更改的是子进程的目录!--->子进程执行完毕 ---> 继续用的是父进程,即myshell!• 如果是cd命令,不需要创建子进程,让she11自己执行对应的命令,本质就是执行系统接口。• 像这种不需要让我们的子进程来执行,而是让she11自已执行的命令叫做 内建/内置命令。回到最初的问题,为什么我们自己写的myshell,cd的时候,路径没有变化呢?运行上面的代码可以发现cd到上级目录后查看当前路径没有变化,为什么会这样?

2023-06-02 23:28:03 76

原创 Liunx基础-进程控制

进程退出会变成僵尸 ,会把自己的退出结果写入到自己的task_struct。wait/waitpid 是一个系统调用 ,由0S 执行,OS有资格也有能力去读取子进程的task_struct。进而也得出一个结论,进程得退出信息是从退出子进程的task_struct中获取的。

2023-05-28 11:21:54 165

原创 vscode本地配置和远程连接

vscod只是个高级的编辑器,不能编译代码。如果需要在本地编译代码就需要安装编译器。MinGW-w64 是移植到windows平台的一个gcc编译器,使用起来也是非常方便的。下面我们就安装编译器吧。

2023-05-26 01:15:04 854

原创 Liunx基础-进程概念(下)

当子或者父进程任何一方尝试向共享数据做写入操作,此时操作系统会在物理内存上重新开辟一块空间并将数据拷贝到新空间,修改做操作一方进程的页表的映射关系让它指向新空间。fork之后子进程不需要获取父进程的id值。我们发现,输出出来的变量值和地址是一模一样的,很好理解呀,因为子进程按照父进程为模版,父子并没有对变量进行进行任何修改。上面的图就足矣说名问题,同一个变量,地址相同,其实是虚拟地址相同,内容不同其实是被映射到了不同的物理地址!所以,父子进程谁先返回,谁就先写入id,因为进程具有独立性,谁先返回,谁就。

2023-05-03 00:19:40 34

原创 Linux基础-进程概念(上)

计算机管理硬件1. 描述起来,用struct结构体2. 组织起来,用链表或其他高效的数据结构。

2023-04-24 22:17:52 60

原创 inline、auto、nullptr等关键字简介

目录​​​​​​​一、inline 1.概念2.查看方式:3.特性二、auto 1.简介2.auto的使用细则1. auto与指针和引用结合起来使用2.auto不能推导的场景3.基于范围的for循环(C++11)三、指针空值nullptr(C++11)以inline修饰的函数叫做内联函数,编译时C++编译器会在调用内联函数的地方展开,没有函数调用建立栈帧的开销,内联函数提升程序运行的效率。如果在上述函数前增加inline关键字将其改成内联函数。

2022-12-07 12:03:25 120

原创 结构体内存对齐详解

4.如果嵌套了结构体的情况,嵌套的结构体对齐到自己的最大对齐数的整数倍处,结构体的整体大小就是所有最大对齐数(含嵌套结构体的对齐数)的整数倍。2.其他成员变量要对齐到某个数字(对齐数)的整数倍的地址处。联合也是一种特殊的自定义类型这种类型定义的变量也包含一系列的成员,特征是这些成员公用同一块空间(所以联合也叫共用体)。那在设计结构体的时候,我们既要满足对齐,又要节省空间,如何做到让占用空间小的成员尽量集中在一起。2.当最大成员大小不是最大对齐数的整数倍的时候,就要对齐到最大对齐数的整数倍。...

2022-07-26 23:33:10 249

原创 strcmp、strstr、memcpy、memmove等库函数的用法和模拟实现

strcmp()是一个C语言库函数,用来比较两个字符串的大小,它只能用来比较字符串。参数1的字符串大于参数2,函数返回一个大于0的int型值,小于则返回小于0的值。两个字符串相等返回0。函数声明string1,string2string1tostring2.string1string2string1string2string1string2使用strcmp()函数模拟实现strcmp()函数两个字符串不能直接比较根据strcmp()的声明和返回值设计函数。...

2022-07-26 16:17:58 271

原创 深入了解一下C语言scanf()库函数

目录声明:本人是正在学习C语言的小白一枚,以下是本人目前对scanf函数的理解,如有错误欢迎评论区指正。一、scanf函数的定义二、scanf函数的返回值scanf函数返回成功读入的数据项数返回值为int型,读入数据时遇到了“文件结束”则返回EOF。例:注意:如果scanf中%d是连着写的如“%d%d%d”,在输入数据时,数据之间不可以用逗号分隔,只能用空白字符(空格或tab键或者回车键)分隔——“2 (空格)3(tab) 4” 或 “2(tab)3(回车)4”等。若是“%d,%d.

2022-04-16 19:34:07 6145 8

原创 win10系统安装Linux虚拟机一条龙安排

win10系统安装Linux虚拟机保姆级教程目录下载虚拟机和Ubuntu镜像1.下载虚拟机2.下载Ubuntu最近想学一下Linux系统,因为平时用windows系统所以决定安装Linux虚拟机。整理了一些安装的资料希望能帮助到后面想要安装Linux虚拟机的朋友。目录下载虚拟机和Ubuntu镜像1.下载虚拟机虚拟机可以实现使用一台电脑体验多种操作系统,关于虚拟机网上有很多种,我用的是VMware workstation pro。VMware workstation pro 15 下载地址鼠标

2022-04-10 22:58:57 7770 3

空空如也

空空如也

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

TA关注的人

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