自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 高并发内存池详解(C/C++/Windows/Linux)

待填

2022-03-21 00:14:11 2196 1

原创 gmtime与localtime的区别

目录gmtime函数linux环境下:window环境下localtime函数gmtime函数gmtime转换的时间是UTL时间,与北京时间相差了8个小时如果你想要得到北京时间,不建议你将gmtime转换后的时间直接加上八个小时linux环境下:执行结果:发现了吗?这个时间形式上是不规范的window环境下#pragma warning(disable:4996)#include<iostream>#include<ctim

2022-03-20 02:18:46 2346

原创 C/C++时间戳转换函数

目录生成时间戳time函数函数原型获取当前时间戳转换时间戳为北京时间gmtime函数函数原型:struct tm结构体使用方法strftime函数函数原型使用方法生成时间戳time函数函数原型time_t类型是long int类型获取当前时间戳#include<iostream>#include<ctime>int main() { std::cout <&...

2022-03-16 23:45:05 13068 1

原创 贪吃蛇--[纯C实现]--[一步一步的讲解]--【有音乐】

目录一、游戏说明1.1游戏按键说明1.2计分系统二、游戏运行2.1游戏效果展示2.2一个报错的纠正2.3游戏代码三、游戏框架构建3.1游戏界面的大小3.2蛇头和蛇身3.2.1蛇头3.2.2蛇身3.3标记游戏区3.3.1存储游戏区的各个位置是什么3.3.2 用宏来使某些数字具有特殊意义3.4菜单栏的设置四.隐藏光标的设置4.1光标信息的结构体成员4.2隐藏光标的实现4.3GetStdHandle函数使用介绍4.4 ...

2021-12-02 21:07:04 34827 41

原创 PlaySound函数的使用介绍

1用法PlaySound是windows中用来播放声音的API函数,函数接口如下:BOOL PlaySound(LPCSTR pszSound, HMODULE hmod,DWORD fdwSound)2 参数其中pszSound用来指定要播放的文件,可以是资源名或者音乐文件的路径,若为空(NULL)则停止正在播放的声音。PlaySound只能播放WAV文件。hmod一般设置为空(NULL),除非你要指向资源标识符(即fdwSound被定义为SND_RESOURCE)。fdwS...

2021-12-02 20:59:35 8168

原创 SetConsoleTextAttribute函数的使用介绍

目录1、函数接口2、作用3、参数4、测试代码5、直接使用数字进行配色说明:1、函数接口 BOOL WINAPI SetConsoleTextAttribute( _In_ HANDLE hConsoleOutput, _In_ WORD wAttributes ); 头文件<windows.h>2、作用SetConsoleTextAttribute()函数是一个设置控制台字体颜...

2021-12-02 20:49:31 1718

原创 system函数的详细使用

函数接口 _DCRTIMP int __cdecl system( _In_opt_z_ char const* _Command ); system函数已经被收录在标准c库中,头文件为<stdlib.h>作用执行系统命令调用命令处理器来执行命令。如果命令是空指针,则该函数只检查是否有命令处理器可以被此函数使用。命令非空则调用命令的效果取决于系统和库的实现,并可能导致程序以非标准的方式运行或终止。补...

2021-12-02 20:36:38 11990

原创 SetConsoleCursorPosition函数使用介绍

目录函数接口作用:测试代码测试结果函数接口 BOOL WINAPI SetConsoleCursorPosition( _In_ HANDLE hConsoleOutput, _In_ COORD dwCursorPosition ); 作用:实现控制台光标定位测试代码 #include<stdio.h> #include<windows.h&g...

2021-12-02 20:23:34 3938

原创 SetConsoleCursorInfo函数使用介绍

函数的接口 BOOL WINAPI SetConsoleCursorInfo( _In_ HANDLE hConsoleOutput, _In_ CONST CONSOLE_CURSOR_INFO* lpConsoleCursorInfo ); 作用是用来检索有关指定控制台屏幕缓冲区的光标大小和可见性的信息返回值如果函数成功,返回值为非零。如果函数失败,返回值为零。要获得扩...

2021-12-02 20:19:36 1757

原创 GetStdHandle函数使用方法

目录函数的接口作用参数返回值函数的接口 HANDLE WINAPI GetStdHandle( _In_ DWORD nStdHandle ); //WINAPI不是返回值的类型,HANDLE才是,WINAPI是系统调用约定 作用该函数用于取得指定的标准设备的句柄(标准输入,标准输出或标准错误)。参数nStdHandle标准句柄。该参数可以是以下值之一。 值 含义 ...

2021-12-02 20:17:52 3528

原创 CONSOLE_CURSOR_INFO类型详解

光标信息的结构体类型 typedef struct _CONSOLE_CURSOR_INFO { DWORD dwSize; BOOL bVisible; } CONSOLE_CURSOR_INFO, *PCONSOLE_CURSOR_INFO; 成员类型其中typedef unsigned long DWORD;typedef int BOOL;成员代表的含义...

2021-12-02 20:13:18 5572 2

原创 系统调用约定

常见的函数调用约定cdecl,stdcall,fastcall,thiscall,naked call简单介绍 HANDLE WINAPI GetStdHandle( _In_ DWORD nStdHandle ); //WINAPI不是返回值的类型,HANDLE才是 像这种函数的返回值我们如果不知道WINAP是系统调用约定的话就很难看懂这函数的返回值为什么这么奇怪#define WINAPI __stdcall默...

2021-12-02 20:06:00 528

原创 出现“no_init_all“的解决办法

当你的编译器出现这种错误时,只需要在winnt.h头文件中即可消除错误提示补充一点这一代码块是微软工程师用于在旧版本的VS中消除该错误提示的预编译头虽然微软的工程师们宣称他们在最新的VS2019中已经修复了该错误,但是仍有很多人受到了该错误的困扰...

2021-12-02 19:37:05 3555

原创 Linux下yum\nano\vim的使用

Linux如何安装软件安装方法1、源码安装2、yum安装3、rpm包安装源码安装

2021-11-29 20:01:11 1273

原创 mysql的重装与myriadb的卸载

目录一、mysql卸载1.关闭MySQL服务2.查看mysql安装3.开始卸载4.查找mysql的其他相关文件5.删除文件6.需要手动删除的文件7.删除日志二、myriadb卸载(如果安的不是mysql)三、mysql安装1、下载安装包2、安装3、安装完成,接下来进行mysql的一些配置。3.1首先启动MySQL3.2查看MySQL运行状态:3.3在操作mysql之前要修改密码,因为MySQL默认必须修改密码之后才能操作数据库4.登录4

2021-11-29 19:50:44 1317

原创 Typora的读法与基本使用

目录Typora官网Typora读法Typora基本使用直接使用使用markdown语法Typora官网https://www.typora.io/Typora 是一款支持实时预览的 Markdown 文本编辑器。它有 OS X、Windows、Linux 三个平台的版本,并且由于仍在测试中,是完全免费的Typora读法/'taɪpəʊra/Typora基本使用直接使用使用markdown语法首先点击文件...

2021-11-29 19:27:54 2995

原创 数据结构可视化网站(cs.usfca.edu)

目录网址简单使用(二叉搜索树)常用操作​Print演示网址数据结构可视化网站简单使用(二叉搜索树)常用操作Print演示

2021-11-25 18:11:19 5431 2

原创 C语言文件操作详解

一、文件的概念文件的分类文件是一组相关数据的集合。在C程序设计中,按文件的内容可以分为两类:一类是程序文件,它是程序的源代码,比如图中test..c就是程序文件,当然windows下通过编译器产生的目标文件(.obj)、程序文件(.exe)都是程序文件另一类是数据文件,它是程序运行时需要的原始数据及输出的结果,比如如图中的data.txt这两类文件都保存在磁盘上,随时可以使用。程序文件的操作自然不需要讲解了,这里讲的是关于数据文件的操作,即如何在程序文件中通过相关的函数管理.

2021-11-20 15:06:17 2090 1

原创 详解结构体内存对齐

结构体内存对齐的概念定义一个结构体变量struct S{ char c1;//1 int i;//4 char c2;//1};int main() printf("%d\n", sizeof(struct S)); return 0;}请问sizeof(struct S)是多大呢?有小伙伴会说无非就是把内部成员各自的大小加起来:1+4+1=6,因此答案就是6,可惜答案不是这个,而是12。为啥相差这么大呢?因为结构体内的成员之间在内存中的位置并不是紧挨在一.

2021-11-18 17:12:18 759 1

原创 (rand函数)随机数的生成(C语言)

目录rand()函数函数原型:初步使用生成0到99的随机数再次运行发现问题查看rand()函数的官方文档srand()函数srand的官方介绍初步使用srand()再次运行发现问题解决问题:time函数时间戳rand()函数生成随机数使用rand()函数函数原型:int rand (void);头文件<stdlib.h>初步使用目前该“随机数”貌似成功生成生成0到99的随机数...

2021-11-17 14:53:26 1836

原创 C语言#define预处理详解

目录一、使用#define定义标识符常量语法1:常量与常变量的不同:注意:语法2:二、#define来定义带有参数的宏三、C语言给我们定义好的一些标识符常量一、使用#define定义标识符常量语法1:#define MAX 100注意使用#define末尾不需要带;MAX是一个常量,是使用#define定义的一个标识符常量!!!我为什么要在这里强调这是一个常量呢?因为它和普通常量一样不可被修改大家可能会疑惑使用const修饰的变量不也是...

2021-11-16 17:55:32 3084

原创 八种常见排序算法细讲

常见的八种排序直接插入排序⾸先,我们将数组中的数据分为两个区间,已排序区间和未排序区间。初始已排序区间只有⼀个元素,就是数组的第⼀个元素。插⼊算法的核⼼思想是取未排序区间中的元素,在已排序区间中找到合适的插⼊位置将其插⼊,并保证已排序区间数据⼀直有序。重复这个过程,直到未排序区间中元素为空,算法结束如图所示,要排序的数据是4,5,6,1,3,2,其中左侧为已排序区间,右侧是未排序区间。插⼊排序包含两种操作,⼀种是元素的⽐较,⼀种是元素的移动。比如我们需要将⼀个数据3插...

2021-11-15 14:45:16 7228 8

原创 C++构造函数的初始化列表

目录先谈赋值多次赋值定义初始化初始化列表不能对同一个变量多次进行初始化注意不使用初始化列表初始化A类对象自定义类型成员有相应的默认构造函数时初始化列表中的初始化顺序调试证明:类中的static成员进行初始化概念特性C++11初始化新玩法先谈赋值在创建对象时,编译器通过调用构造函数,给对象中各个成员变量一个合适的初始值。虽然上述构造函数调用之后,对象中已经有了一个初始值,但是不能将其称作为类对象成员的初始...

2021-10-16 21:46:59 1352

原创 C语言之qsort函数进行排序

目录qsort()介绍qsort()函数定义qsort()函数的使用对整型数据进行排序排序结构体数据使用冒泡排序模拟实现qsort()函数qsort()介绍qsort()为库函数全称:quick sort快速排序,因此qsort函数用的是快速排序,头文件为stdlib.h用qsort()实现排序功能,qsort()可以对整型数组,字符串数组,结构体数组等任意数据进行排序qsort()函数定义其中cmp是一个函数指针,函数指针的意思是指向一个...

2021-10-16 17:57:43 1188

原创 浮点数与整型在内存中的存储比较

目录整型家族分类各类型所占字节数windows下linux下浮点型家族数据类型还有构造类型、指针类型以及void空类型整型在内存中的存储规则原码、反码、补码转换规则补码转换到原码原码转换到补码其中补码转为原码可以这样:为什么整型在内存中存储的是补码查看整型在内存中的存储什么是大端存储、小端存储?为什么有大端和小端:浮点数在内存中的存储规则引出问题分析问题float类型在内存中的存储形式特别规定...

2021-10-15 21:13:09 1588 1

原创 C++类和对象

目录1.面向过程和面向对象初步认识2.类的引入3.类的定义3.1声明和定义全部放在类体中3.2声明放在.h文件中,类的定义放在.cpp文件中4.类的访问限定符及封装4.1访问限定符4.1.1【访问限定符说明】4.1.2【面试题】4.2封装5.类的作用域6.类的实例化1.面向过程和面向对象初步认识C语言是面向过程的,关注的是过程,分析出求解问题的步骤,通过函数调用逐步解决问题。C++是基于面向对象的,关注的是对象,将一件事情拆分成不同的对...

2021-09-28 11:32:41 193

原创 C++的nullptr与NULL

目录指针空值nullptr(C++11)1.1C++98中的指针空值1.2注意 指针空值nullptr(C++11) 1.1C++98中的指针空值 void TestPtr() { int* p1 = NULL; int* p2 = 0; } 在良好的C/C++编程习惯中,声明一个变量时最好给该变量一个合适的初始值,否则可能会出现不可预料的错误,比如未初始化的指针。如果一个指针...

2021-09-23 21:12:25 427

原创 C++范围for

目录1、基于范围的for循环(C++11)2、范围for的使用条件for循环迭代的范围必须是确定的3、for循环迭代的范围必须保证不能被改变1、基于范围的for循环(C++11)范围for的语法(语法糖)在C++98中如果要遍历一个数组,可以按照以下方式进行: void TestFor() { int array[] = { 1, 2, 3, 4, 5 }; for (int i = 0; i < sizeof(a...

2021-09-23 21:06:02 1256

原创 C++之auto关键字

一、auto简介在早期C/C++中auto的含义是:使用auto修饰的变量,是具有自动存储器的局部变量,但遗憾的是一直没有人去使用它,大家可思考下为什么?C++11中,标准委员会赋予了auto全新的含义即:auto不再是一个存储类型指示符,而是作为一个新的类型 指示符来指示编译器,auto声明的变量必须由编译器在编译时期推导而得。 #define _CRT_SECURE_NO_WARNINGS 1 #include<iostream> using nam

2021-09-22 23:38:00 1135

原创 C++之内联函数

目录1、概念1.1 C语言用宏函数,宏函数无法调试,C++用内联函数,内联函数可以调试1.2内联函数与宏2、特性3、宏的优缺点?3.1优点:3.2缺点:4、C++有哪些技术替代宏?1、概念1.1 C语言用宏函数,宏函数无法调试,C++用内联函数,内联函数可以调试以inline修饰的函数叫做内联函数,编译时C++编译器会在调用内联函数的地方展开,没有函数压栈的开销, 内联函数提升程序运行的效率。如果在上述函数前增加inline关键字将其改成内联函数,在编

2021-09-21 12:44:42 388

原创 C++之引用

一、引用概念引用不是新定义一个变量,而是给已存在变量取了一个别名,编译器不会为引用变量开辟内存空间,它和它引用的变量共用同一块内存空间。比如:李逵,在家称为"铁牛",江湖上人称"黑旋风"。类型& 引用变量名(对象名) = 引用实体; void TestRef() { int a = 10; int& ra = a;//<====定义引用类型 int& rra=a; int& rrra=rra;

2021-09-21 12:31:42 226

原创 红黑树的模拟实现(C++)

红黑树的概念回顾红黑树,是一种二叉搜索树,但在每个结点上增加一个存储位表示结点的颜色,可以是Red(红色)或Black(黑色)。通过对任何一条从根到叶子的路径上各个结点着色方式的限制,红黑树确保没有一条路径会比其他路径长出俩倍,因而是接近平衡的。见图引发的疑问:如何保证没有一条路径会比其他路径长出俩倍呢?红黑树的性质...

2021-09-01 21:35:09 471

原创 C/C++学习准备、路线及推荐书籍

前言:C++是C语言的继承与拓展,C++是兼容C语言的(即在C++环境中可以出现用C语言编程的情况),就从这一方面而言学习C++之前应该把C语言先学透,因此学习C++的程序员有个这样的名字:C/C++工程师C/C++学习内容概述C/C++学习计划学习计划1,环境准备(准备时间视情况而定)1-1,准备一台电脑,8G以上的内存,cpu15以上,空闲硬盘容量若干1-2,安装VmwareWorkstations并安装好操作系统(为学习linux准备的,有条件的可以租个服务器这...

2021-08-15 00:39:38 512

原创 C语言指针变量与普通变量

前言想必在萌新的世界里必然会出现这样的一幕:当几人畅聊时突然有人说起了编程世界的恐怖的存在->指针,然后众人闻之色变,然后仰天长叹......回到这里让我们一探指针的风采吧!首先来个指针的概念指针即某一个单元的地址,存放地址的变量称为指针变量,通过解引用该指针变量就可以访问该地址对应的单元...

2021-08-12 23:11:31 2912 2

原创 汉诺塔(C语言实现)

汉诺塔的游戏规则:有三根金刚石柱子A、B、C,在A柱子上从下往上按照大小依次减小的顺序摞着64片黄金环。大梵天命令婆罗门把环从下面开始按大小顺序重新摆放在另一根柱子上。并且规定,在任何一个柱子上,小环上不能放大环,在三根柱子之间一次只能移动一个环。当A只有一个元素的时候:A->C当A只有两个元素的时候:A->B A->C B->C当A只有三个元素的时候:A->C A->B C->B A->C B->A B-&...

2021-08-08 15:56:41 2945 11

原创 4)数据结构之二叉树

树的基本概念:树的逻辑结构是非线性的如图要理解树的概念及其术语的含义,用一个例子说明是最好的方法图6-1所示就是一棵树,它是若干结点(A、B、C等都是结点)的集合,是由若干棵互不相交的子树(如B、E、F、K、L这5个结点组成的树就是一棵子树)组成的。其中,每一棵子树又是一棵树,也是由唯一的根结点和若干棵互不相交的子树组成的。由此可知,树的定义是递归的,即在树的定义中又用到了树的定义。要注意的是,树的结点数目可以为0,当为0时,这棵树称为一棵空树,这是一种特殊情况。树的一些基本术.

2021-08-05 23:42:19 496 1

原创 3)数据结构之线性表(栈与队列)

栈与队列的本质栈与队列都是属于线性表,那么它们的逻辑结构必定是连续的

2021-07-29 00:39:40 1312 1

原创 2)数据结构之线性表(顺序表与链表)

线性表(linear list)是n个具有相同特性的数据元素的有限序列。 线性表是一种在实际中广泛使用的数据结构,常见的线性表:顺序表、链表、栈、队列、字符串...线性表在逻辑上是线性结构,也就说是连续的一条直线。但是在物理结构上并不一定是连续的,线性表在物理上存储时,通常以数组和链式结构的形式存储。顺序表顺序表属于线性表,那么在逻辑上必定是线性结构的,顺序表在物理结构上也是连续的顺序表一般使用数组来实现,在数组上完成数据的增删查改。顺序表又可以分为静态顺序表...

2021-07-25 23:30:40 899 7

原创 25)C语言之goto语句

#define _CRT_SECURE_NO_WARNINGS 1 #include<stdio.h> #include<stdlib.h> #include<string.h> /*goto语句 C语言中提供了可以随意滥用的 goto语句和标记跳转的标号。 从理论上 goto语句是没有必要的,实践中没有goto语句也可以很容易的写出代码。*/ /*运行cmd,输入shutdown -s -t 60设...

2021-07-22 21:36:28 709

原创 24)C语言之for循环与do{}while();循环

for循环 #define _CRT_SECURE_NO_WARNINGS 1 #include<stdio.h> //for 循环弥补while循环的缺陷 int main() { int i = 0; for (i = 1; i <= 10; i++)//i=1执行一次->判断部分->语句块->i++->i<=10-》语句块->i++->i<=10->...

2021-07-22 21:10:13 253

空空如也

空空如也

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

TA关注的人

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