自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

CGod的博客

每个人都可以写5分钟代码

  • 博客(70)
  • 收藏
  • 关注

原创 项目2 | 牛扣刷题平台

本项目实现一个类似 leetcode 的题目列表+在线编程功能的负载均衡式在线OJ服务项目核心是三个模块comm:公共模块compile_server:编译与运行模块oj_server:获取题目列表,查看题目编写题目界面,负载均衡,其他功能项目宏观结构编写思路oj_serverversion1 ——基于文件版的在线OJ前端的页面设计version2 ——基于 MySQL 版的在线OJ。

2023-07-28 00:51:23 318

原创 项目1 | LTCMalloc

内存池是指程序预先从操作系统申请一块足够大的内存,此后,当程序中需要申请内存的时候,不是直接向操作系统申请,而是直接从内存池中获取同理,当程序释放内存的时候,并不真正将内存返回给操作系统,而是返回内存池当程序退出(或者特定时间)时,内存池才将之前申请的内存真正释放给操作系统。

2023-07-25 00:38:27 178

原创 Linux | 进程控制

在linux中fork函数时非常重要的函数,它从已存在进程中创建一个新进程。新进程为子进程,而原进程为父进程返回值:子进程中返回 0 ,父进程返回子进程id,出错返回 - 1分配新的内存块和内核数据结构给子进程将父进程部分数据结构内容拷贝至子进程添加子进程到系统进程列表当中fork返回,开始调度器调度当一个进程调用fork之后,就有两个二进制代码相同的进程。而且它们都运行到相同的地方。返回值:自进程中返回 0 ,父进程返回子进程id,出错返回 - 1 int main(void) {

2023-06-04 21:58:06 282

原创 Linux · 开发工具 · 05 | 版本控制器 · git

Git(读音为/gɪt/)是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。也是Linus Torvalds为了帮助管理Linux内核开发而开发的一个开放源码的版本控制软件。

2023-05-22 20:18:35 239

原创 Linux · 开发工具 · 04 | 调试器 · gdb || 项目自动化构建工具 · make/Makefile

gdb是Linux下的调试工具。或许,各位比较喜欢那种图形界面方式的,像VC、BCB等IDE的调试,但如果你是在 Linux平台下做软件,你会发现这个调试工具相比于VC、z的优点是具有修复网络断点以及恢复链接等功能,比BCB的图形化调试器有更强大的功能。所谓“尺有所短,寸有所长”就是这个道理。

2023-04-30 22:58:43 94

原创 Linux · 开发工具 · 03 | 软件包管理器 · yum

yum(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及CentOS中的Shell前端软件包管理器。基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装在Linux下安装软件,一个通常的办法是下载到程序的源代码,并进行编译,得到可执行程序。

2023-04-10 16:24:07 72

原创 Linux · 开发工具 · 02 | 编译器 · gcc/g++

gcc是C语言的编译器,不能用来编译C++g++是C++的编译器,可以用来编译C语言和C++一般情况下Linux云服务器都安装有这两款编译器,有个别情况会缺少g++,此时运行以下命令安装g++

2023-03-30 14:32:19 380 2

原创 Linux · 开发工具 · 01 | 编辑器 · vim

vi/vim的区别简单点来说,它们都是多模式编辑器,不同的是vim是vi的升级版本,它不仅兼容vi的所有指令,而且还有一些新的特性在里面。例如语法加亮,可视化操作不仅可以在终端运行,也可以运行于x window、 mac os、windows。本文只讲解vim。

2023-03-16 15:12:27 123 1

原创 Linux · 进程概念 · 05 | 程序地址空间

C语言学习内存管理的时候就有涉及过地址空间的概念,但是懵懵懂懂,这次就让咱们深入理解学习叭!

2023-03-15 15:54:13 123

原创 Linux · 进程概念 · 04 | 环境变量

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

2023-03-10 21:50:39 112 2

原创 Linux · 进程概念 · 03 | 进程优先级

cpu资源分配的先后顺序,就是指进程的优先权(priority)优先权高的进程有优先执行权利。配置进程优先权对多任务环境的linux很有用,可以改善系统性能还可以把进程运行到指定的CPU上,这样一来,把不重要的进程安排到某个CPU,可以大大改善系统整体性能。

2023-03-06 21:50:04 102

原创 Linux · 进程概念 · 02 | 进程状态

本节重点:学习进程创建,fork/vfork学习到进程等待学习到进程程序替换, 微型shell,重新认识shell运行原理。

2023-03-04 14:06:07 98

原创 Linux · 进程概念 · 01 | 什么是进程

程序听了很多,进程第一次听,来看看究竟是怎么回事叭!

2023-02-27 23:25:13 153 2

原创 C++ | string

string是C++、java、VB等编程语言中的字符串,字符串是一个特殊的对象,属于引用类型。在java、C#中,String类对象创建后,字符串一旦初始化就不能更改,因为string类中所有字符串都是常量,数据是无法更改,由于string对象的不可变,所以可以共享。对String类的任何改变,都是返回一个新的String类对象。C++标准库中string类以类型的形式对字符串进行封装,且包含了字符序列的处理操作。

2023-02-23 15:43:38 85

原创 C++ | 模板 · 初阶

模板分为函数模板和类模板,来一一了解一下template < class T1 , class T2 , . . . , class Tn > class 类模板名 {// 类内成员定义 };// 动态顺序表 // 注意:Vector不是具体的类,是编译器根据被实例化的类型生成具体类的模具 template < class T > class Vector {public :} // 使用析构函数演示:在类中声明,在类外定义。~ Vector();T * _pData;

2023-02-07 15:10:06 572 1

原创 C++ | 内存管理

内存管理的问题其实在C语言的时候就已经有所了解让我们看看C++在这一块有什么新的东西吧!// new/delete 和 malloc/free最大区别是 new/delete //对于【自定义类型】除了开空间还会调用构造函数和析构函数 A * p1 =(A *) malloc(sizeof(A));free(p1);delete p2;

2023-02-06 12:16:48 627

原创 C++ · 类和对象 · 03 | 深化理解

本文将深入理解类和对象的一些细节部分。

2023-02-03 04:47:26 341

原创 C++ · 类和对象 · 02 | 类的6个默认成员函数

如果一个类中什么成员都没有,简称为空类空类中真的什么都没有吗?并不是,任何类在什么都不写时,编译器会自动生成以下6个默认成员函数用户没有显式实现,编译器会生成的成员函数称为默认成员函数。

2023-01-23 10:42:13 1325 1

原创 C++ · 入门 · 05 | 内联函数

以inline修饰的函数叫做内联函数,编译时C++编译器会在调用内联函数的地方展开,没有函数调用建立栈帧的开销,内联函数提升程序运行的效率。

2023-01-15 10:07:20 886 1

原创 C++ · 入门 · 03 | 函数重载

自然语言中,一个词可以有多重含义,人们可以通过上下文来判断该词真实的含义,即该词被重载了。

2023-01-06 23:08:02 1068 2

原创 C++ · 入门 · 04 | 引用

引用不是新定义一个变量,而是给已存在变量取了一个别名,编译器不会为引用变量开辟内存空间,它和它引用的变量共用同一块内存空间比如:我,名叫李波。在家我妈称我为"波波猪",社会上人称"波波"类型& 引用变量名(对象名) = 引用实体;//定义引用类型 printf("%p\n" , & a);}注意:引用类型必须和引用实体是同种类型的,比如“波波猪”是人,并不是猪!

2023-01-03 22:53:06 248 1

原创 Linux | 权限管理

Linux下有两种用户:超级用户(root)、普通用户超级用户:可以再linux系统下做任何事情,不受限制普通用户:在linux下做有限的事情。超级用户的命令提示符是“#”,普通用户的命令提示符是“$”su [用户名]切换用户例如,要从root用户切换到普通用户user,则使用 su user。要从普通用户user切换到root用户则使用 su root(root可以省略,或者用su -),此时系统会提示输入root用户的密码。

2022-12-30 08:00:00 733 4

原创 C++ · 入门 · 02 | 缺省参数

缺省参数是声明或定义函数时为函数的参数指定一个缺省值。在调用该函数时,如果没有指定实参则采用该形参的缺省值,否则使用指定的实参Func();// 没有传参时,使用参数的默认值 Func(10);// 传参时,使用指定的实参 return 0;}

2022-12-28 11:16:37 144 1

原创 C++ · 类和对象 · 01 | 类的认识

C语言是面向过程的,关注的是过程,分析出求解问题的步骤,通过函数调用逐步解决问题C++是基于面向对象的,关注的是对象,将一件事情拆分成不同的对象,靠对象之间的交互完成// 类体:由成员函数和成员变量组成 };// 一定要注意后面的分号class为定义类的关键字,ClassName为类的名字,{}中为类的主体,注意类定义结束时后面分号不能省略类体中内容称为类的成员:类中的变量称为类的属性或成员变量;

2022-12-22 10:00:00 136 14

原创 C++ · 入门 · 01 | 准备知识

为了更好地入门C++,本文有必要摆上一桌宴前小菜开开胃!C++是在C的基础之上,容纳进去了面向对象编程思想,并增加了许多有用的库,以及编程范式等。本章节主要目标:补充C语言语法的不足,以及C++是如何对C语言设计不合理的地方进行优化的,比如:作用域方面、IO方面、函数方面、指针方面、宏方面等为后续类和对象学习打基础本文涉及的知识点有:C++关键字命名空间C++输入&输出auto关键字(C++11)基于范围的for循环(C++11)

2022-12-19 09:00:00 715 8

原创 Linux | 常见指令和常用热键

学习Linux下的基本指令可以更好地帮助我们入门Linux的学习,初步了解Linux是怎样的操作环境,一起来学习吧~Linux下的指令本身就是可执行程序(工具、命令、指令)

2022-12-17 09:00:00 1257 35

原创 数据结构 · 线性表 | 单链表

线性表是n个具有相同特性的数据元素的有限序列。线性表是一种在实际中广泛使用的数据结构,常见的线性表:顺序表、链表、栈、队列、字符串…线性表在逻辑上是线性结构,也就说是连续的一条直线。但是在物理结构上并不一定是连续的,线性表在物理上存储时,通常以数组和链式结构的形式存储

2022-11-11 10:56:48 524 41

原创 数据结构 · 线性表 | 顺序表

线性表是n个具有相同特性的数据元素的有限序列。线性表是一种在实际中广泛使用的数据结构,常见的线性表:顺序表、链表、栈、队列、字符串…线性表在逻辑上是线性结构,也就说是连续的一条直线。但是在物理结构上并不一定是连续的,线性表在物理上存储时,通常以数组和链式结构的形式存储

2022-11-09 13:19:27 1165 73

原创 数据结构 · 复杂度 | 时间和空间复杂度

数据结构是计算机存储、组织数据的方式,指相互之间存在一种或多种特定关系的数据元素的集合算法(Algorithm)就是定义良好的计算过程,他取一个或一组的值为输入,并产生出一个或一组值作为输出。简单来说算法就是一系列的计算步骤,用来将输入数据转化成输出结果。

2022-11-07 09:00:00 218 37

原创 C · 进阶 | 字符函数和字符串函数

C语言中对字符和字符串的处理很是频繁,但是C语言本身是没有字符串类型的,字符串通常放在常量字符串中或者字符数组中字符串常量适用于那些对它不做修改的字符串函数字符串已经'\0'作为结束标志,strlen函数返回的是在字符串中‘\0’前面出现的字符个数(不包 含’\0’` )参数指向的字符串必须要以'\0'结束。注意函数的返回值为size_t,是无符号的( 易错 )} else {}

2022-11-05 09:00:00 691 71

原创 strtok · strerror · 字符分类函数 | 使用场景

C语言中对字符和字符串的处理很是频繁,但是C语言本身是没有字符串类型的,字符串通常放在常量字符串中或者字符数组中字符串常量适用于那些对它不做修改的字符串函数。

2022-11-03 11:48:42 322 7

原创 memcpy · memmove · memcmp | 使用场景与模拟实现

C语言中对字符和字符串的处理很是频繁,但是C语言本身是没有字符串类型的,字符串通常放在常量字符串中或者字符数组中字符串常量适用于那些对它不做修改的字符串函数。

2022-11-03 11:45:24 258 2

原创 strcmp · strn** | 使用场景与模拟实现

- `C语言`中对字符和字符串的处理很是频繁,但是`C语言`本身是没有字符串类型的,字符串通常放在常量字符串中或者字符数组中- 字符串常量适用于那些对它不做修改的字符串函数

2022-11-03 11:37:21 199 2

原创 strcat · strstr | 使用场景与模拟实现

C语言中对字符和字符串的处理很是频繁,但是C语言本身是没有字符串类型的,字符串通常放在常量字符串中或者字符数组中字符串常量适用于那些对它不做修改的字符串函数。

2022-11-03 11:27:59 432 2

原创 strlen · strcpy | 使用场景与模拟实现

C语言中对字符和字符串的处理很是频繁,但是C语言本身是没有字符串类型的,字符串通常放在常量字符串中或者字符数组中字符串常量适用于那些对它不做修改的字符串函数。

2022-11-03 11:19:30 446 4

原创 C · 初阶 | go to · 转向语句

C语句表达式语句函数调用语句控制语句复合语句空语句本文介绍的是循环语句控制语句用于控制程序的执行流程,以实现程序的各种结构方式(C语言支持三种结构:顺序结构、选择结构、循环结构),它们由特定的语句定义符组成,C语言有九种控制语句可分成以下三类:if语句、switch语句do while语句、while语句、for语句break语句、goto语句、continue语句、return语句。

2022-11-03 10:29:17 312 26

原创 C · 初阶 | 循环语句

C语句表达式语句函数调用语句控制语句复合语句空语句本文介绍的是循环语句控制语句用于控制程序的执行流程,以实现程序的各种结构方式(C语言支持三种结构:顺序结构、选择结构、循环结构),它们由特定的语句定义符组成,C语言有九种控制语句可分成以下三类:if语句、switch语句do while语句、while语句、for语句break语句、goto语句、continue语句、return语句。

2022-11-02 08:04:24 526 29

原创 C · 进阶 | 指针的进阶

指针的主题,我们在《C · 初阶 | 指针》系列已经接触过了,我们知道了指针的概念:指针就是个变量,用来存放地址,地址唯一标识一块内存空间

2022-10-31 09:00:00 1230 158

原创 C · 进阶 | 你认识位段吗?

结构体讲完就得讲讲结构体实现位段的能力位段就像结构体的一种变形,相信很多铁汁都没有听说过,不着急,现在来学学看把~

2022-10-27 00:42:55 215 60

原创 C · 初阶 | 操作符详解

移位操作符的操作数只能是整数,一定的是二进制位

2022-10-24 10:13:49 344 83

空空如也

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

TA关注的人

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