自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 进程控制(创建、等待、终止、替换)

fork函数在linux中fork函数时非常重要的函数,它从已存在进程中创建一个新进程。新进程为子进程,而原进程为父进程。#include <unistd.h>pid_t fork(void);返回值:自进程中返回0,父进程返回子进程id,创建失败返回-1当fork之后,它大概是怎样控制的呢?如图解,也就清晰许多了。运行结果上面这段代码就是一个进程创建了一个子进程的例子。父进程输出i am father,子进程输出子进程pid.那么具体实现是怎样的呢?fork后由系

2021-11-04 23:19:15 358 3

原创 环境变量、进程地址空间

环境变量在Linux下我们编写出一个程序后要运行,可以在前当前目录下./可执行文件名。如果不在当前目录下,就要加上要运行程序的路径。因为可执行文件是在硬盘上的,要运行一个程序,首先得将这个程序可执行程文件加载到内存,所以得知道这个可执行文件的位置。我们的命令也存储在硬盘中啊,这么一说,我们的命令也是调用一个个可执行文件啊。那为什么不用加它的路径,这是因为PATH(环境变量)里存储了这些命令的路径,所以在执行命令的时候,系统会在环境变量里找到路径信息,就不用我们敲了。概念:环境变量(environm

2021-11-03 21:39:18 220

原创 Linux进程初识2

进程状态为了弄明白正在运行的进程是什么样的,我们需要知道进程的不同状态。一个进程可以有几个状态(在Linux内核里,进程有时候也叫做任务)/** The task state array is a strange "bitmap" of* reasons to sleep. Thus "running" is zero, and* you can test for combinations of others with* simple bit tests.*/static const cha

2021-11-03 10:57:09 632

原创 Linux进程初识

从ENIAC到当前最先进的计算机都采用的是冯·诺伊曼体系结构。所以冯·诺伊曼是当之无愧的数字计算机之父。冯诺依曼体系结构采用存储程序方式,指令和数据不加区别混合存储在同一个存储器中,数据和程序在内存中是没有区别的,它们都是内存中的数据,当EIP指针指向哪 CPU就加载那段内存中的数据,如果是不正确的指令格式,CPU就会发生错误中断. 在现在CPU的保护模式中,每个内存段都有其描述符,这个描述符记录着这个内存段的访问权限(可读,可写,可执行).这就变相的指定了哪些内存中存储的是指令哪些是数据)指令和数据

2021-06-08 07:59:44 223 3

原创 Linux权限

Linux下有两种用户:超级用户(root)、普通用户。超级用户:可以再linux系统下做任何事情,不受限制普通用户:在linux下做有限的事情。超级用户的命令提示符是“#”,普通用户的命令提示符是“$”命令:su [用户名]功能:切换用户。例如,要从root用户切换到普通用户user,则使用 su user。 要从普通用户user切换到root用户则使用 su root(root可以省略),此时系统会提示输入root用户的密码Linux权限管理文件访问者的分类(人)文件和文件目录的所有

2021-06-02 21:44:07 122

原创 Linux初识(指令)

想了解Linux发展史以及简介的可以参考这篇文章Linux发展史及简介Linux下基本指令ls 指令语法: ls [选项][目录或文件]功能:对于目录,该命令列出该目录下的所有子目录与文件。对于文件,将列出文件名以及其他信息。常用选项:-a 列出目录下的所有文件,包括以 . 开头的隐含文件。-d 将目录象文件一样显示,而不是显示其下的文件。 如:ls –d 指定目录-i 输出文件的 i 节点的索引信息。 如 ls –ai 指定文件-k 以 k 字节的形式表示文件的大小。ls –alk 指

2021-06-02 20:21:29 88

原创 C++多态

C++三大特性:封装、继承、多态封装、继承前面了解了,接下来这篇就了解了解多态。多态的概念多态的概念:通俗来说,就是多种形态,具体点就是去完成某个行为,当不同的对象去完成时会产生出不同的状态。举个栗子:就比如买票这个行为,当普通人买票时,是全价买票;学生买票时,是半价买票;军人买票时是优先买票。多态的构成条件多态是在不同继承关系的类对象,去调用同一函数,产生了不同的行为。比如Student继承了Person。Person对象买票全价,Student对象买票半价。在继承中要构成多态还有两个条件:

2021-06-02 17:00:28 86

原创 继承——多继承

单继承: 一个子类只有一个直接父类时称这个继承关系为单继承多继承: 一个子类有两个或以上直接父类时称这个继承关系为多继承菱形继承: 菱形继承是多继承的一种特殊情况。看着这张图,菱形继承会带来什么问题?由模型构造,可以看出菱形继承有数据冗余和二义性的问题。在A的对象中Person成员会有两份。会造成数据冗余,同时,在访问父类的数据时会存在二义性,该访问哪个?using namespace std;class Person{public: string _name; // 姓名};c

2021-05-27 13:55:29 3645 2

原创 继承初识

文章目录继承的概念及定义继承的概念及定义面向对象三大特性:封装、继承、多态。封装本质上是为了更好的管理。继承的概念继承(inheritance)机制是面向对象程序设计使代码可以复用的最重要的手段,它允许程序员在保持原有类特性的基础上进行扩展,增加功能,这样产生新的类,称派生类。继承呈现了面向对象程序设计的层次结构,体现了由简单到复杂的认知过程。以前我们接触的复用都是函数复用,继承是类设计层次的复用。#include<iostream>#include<string>u

2021-05-26 23:41:40 105

原创 模板(1)

文章目录泛型编程函数模板类模板泛型编程如何实现一个通用的交换函数呢?void Swap(int& left, int& right) { int temp = left; left = right; right = temp; }void Swap(double& left, double& right) { double temp = left; left = right; right = temp; }void Swap(char& left

2021-05-22 20:04:30 79

原创 C\C++内存分布、new和delect

文章目录上图由添加链接描述

2021-05-20 23:06:30 109

原创 初始化列表、static成员、友元

文章目录再谈构造初始化列表再谈构造在创建对象时,编译器通过调用构造函数,给对象中各个成员变量一个合适的初始值。class Date{public: Date(int year=2021, int month=5, int day=18) { _year = year; _month = month; _day = day; } private: int _year; int _month; int _day;};虽然上述构造函数调用之后,对象中已经有了一个初始值,但是不

2021-05-19 09:20:37 98

原创 类的默认成员函数

类的6个默认成员函数类的6个默认成员函数1.构造函数2.析构函数拷贝构造函数类的6个默认成员函数如果一个类中什么成员都没有,简称为空类。空类中什么都没有吗?并不是的,任何一个类在我们不写的情况下,都会自动生成下面6个默认成员函数。1.构造函数通过Date类来说明:对于Date类,可以通过SetDate公有的方法给对象设置内容,但是如果每次创建对象都调用该方法设置信息,未免有点麻烦,那能否在对象创建时,就将信息设置进去呢?构造函数是一个特殊的成员函数,名字与类名相同,创建类类型对象时由编译器自动

2021-05-15 20:20:51 129

原创 类和对象初识

类和对象初识1.面向过程和面向对象初步认识2.类的引入3.类的定义4.类的访问限定符及封装5.类的作用域6.类的实例化7.计算类的大小8.this指针1.面向过程和面向对象初步认识C语言是面向过程的,关注的是过程,分析出求解问题的步骤,通过函数调用逐步解决问题。C++是基于面向对象的,关注的是对象,将一件事情拆分成不同的对象,靠对象之间的交互完成。2.类的引入C语言中,结构体中只能定义变量,所以基于以上C++引入了类,类是struct的升级版,多了封装性以及成员可以有函数。如下:#includ

2021-05-14 16:01:38 70

原创 引用、内联函数、auto、NULL和nullptr、extern“c“

引用概念:引用不是新定义一个变量,而是给已存在变量取了一个别名,编译器不会为引用变量开辟内存空间,它和它引用的变量共用同一块内存空间。就像给这块空间取了个新的别名,引用对比的是c中的指针。用法:类型& 引用变量名(对象名) = 引用实体;#include<iostream>using namespace std;void test(){ int a = 10; int& ra = a; printf("%p\n", &a); printf("%p\n

2021-05-12 17:08:44 226

原创 缺省参数和函数重载

缺省参数概念:缺省参数是声明或定义函数时为函数的参数指定一个默认值。在调用该函数时,如果没有指定实参则采用该默认值,否则使用指定的实参。如下#include<iostream>using namespace std;void A(int a = 0) { cout << a << endl;}int main(){ A(); // 没有传参时,使用参数的默认值 A(10); // 传参时,使用指定的实参}结果如下:全缺省参数#inclu

2021-05-08 16:57:04 98

原创 C++入门从hello world!开始

运行环境(VS2013)#include<iostream>using namespace std;int main(){ cout << "hello world!" << endl; return 0;}这是一段将hello world!打印到显示屏上的C++代码。#include<iostream>//using namespace std;int main(){ cout << "hello world!" &

2021-05-08 15:12:47 180

原创 用二维数组实现简单三子棋游戏

用二维数组实现简单三子棋游戏环境(vs2013)#define _CRT_SECURE_NO_WARNINGS#define Hang 3#define Lie 3#include<stdio.h>#include<stdlib.h>#include<time.h>void menu()//菜单{ printf("=======================================\n"); printf("=-------------1

2020-11-29 11:21:37 297

原创 用“*”打印出n行菱形状图

用“*”打印出n行菱形状图代码:(vs2013)#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>void main(){ int n; printf("请输入要打印*的层数:\n"); scanf("%d", &n); if (n == 1) { printf("*\n"); return 0; } if (n % 2 == 0) { printf("输入不合法!\n"); return 0;

2020-11-20 00:57:03 1204

原创 给定两个数,求这两个数的最大公约数

给定两个数,求这两个数的最大公约数代码(vs2013):#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>int Two(int a, int b){ if (a < b) { int t; t = a; a = b; b = t; } for (int i = b; i>0; i--) { if (a%i == 0 && b%i == 0) { printf("这两数的最

2020-11-17 23:22:25 438

原创 提升自己才是当前最重要的事

2020年10月27日当你老了,回顾一生,就会发觉:什么时候出国读书、什么时候决定做第一份职业、何时选定了对象而恋爱、什么时候结婚,其实都是命运的巨变。只是当时站在三岔路口,眼见风云千樯,你作出抉择的那一日,在日记上,相当沉闷和平凡,当时还以为是生命中普通的一天。但一场巨变,已经发生了,地动山移,浑然不觉,当时是道是寻常。世上的生死荣衰,不就是在空寂之中缘起缘灭的么?——杀死鹌鹑的少女加油吧,过去无可挽回,未来可以改变。欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器

2020-10-27 22:48:06 179 2

空空如也

空空如也

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

TA关注的人

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