自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(37)
  • 问答 (1)
  • 收藏
  • 关注

原创 C++---Day07

保证线程安全的方法:线程安全,互斥量加信号锁,原子操作无锁队列(锁锁住的时候不进行用户态和内核态的切换)智能指针不能保证线程安全什么时候专门对析构函数释放所创建对象的空间:析构函数不能释放对象创建的空间,析构函数释放所占的资源(构造的时候生成的堆资源,在构造的时候定义了一个文件指针,指向了文件流对象,等到释放的时候,关闭文件流对象)如何释放对象所占的空间:先明确对象创建在哪个位置点主函数结束,主函数的空间要回收析构函数是释放对象所占的资源空间是由系统进行回收的class Object

2022-03-16 17:53:36 796

原创 C++---Day06

int main(){ int i = 0; i = i++ + 1; cout<<i<<endl;}不可重载运算符运算符? :三木条件运算符. .*成员操作符::作用于操作符sizeof类型字长操作符class Int{ private: int value; public: Int(int x = 0):value(x) { cout &

2022-03-15 12:17:39 995

原创 C++---Day04

B+树和B-树的区别?int main(){ int a = 10; const int b = 20; int &x = a; const int & y = a; const int & xb = b;}常引用可以引用字面常量,普通变量,常变量int main(){ int a = 10; const int & b = a; //const int* const

2022-03-11 18:34:51 1372

原创 C++---Day03

[TCP-IP详解卷1:协议.pdf](…\Documents\Tencent Files\2240031723\FileRecv\TCP-IP详解卷1:协议.pdf)1.总结const与指针的关系2.总结const与引用的关系3.总结this指针任务:1.多线程、多进程银行家算法,生产者–消费者,读者-写者多线程线程的同步哲学家就餐,写一个死锁版本,如何将其改成不死锁版本银行转账问题,写上两个类型A客户转给B客户,如何完成转账互斥量、信号量、共享内存,消息队列,任选其一剖析其底层实

2022-03-09 20:24:39 617

原创 数据结构---哈希

1.哈希Hash哈希函数 == 散列函数将数据自身的值 和 最终的存储位置 形成一个特定关系,这个关系叫做hash函数y(存储位置) = f(x(关键值key))2.如何构造哈希(6种)(1)直接定址法(2)数字分析法(3)平方取中法(4)折叠法(5)除留余数法(6)随机数法最经常的构造方法:除留余数法哈希表:hash table哈希表 哈希函数哈希是一种存储方法哈希是一种排序方法哈希的存储方法是面向排序方法创建的只要算法中用到了哈希思想,这个算法就可以叫做hash算法

2022-03-09 08:49:30 338

原创 C++ ---Day02

constconst在*的左边,const修饰的是指针的指向能力const在*的右边,const修饰的是指针自身的能力int main(){ int a = 10, b = 20; const int* p = &a;//修饰的是指针的指向能力 int* s0 = p;//error const int* s1 = p; int* const s2 = p;//error const int* const s3 = p;}能力可以收缩int main(){ int

2022-03-09 08:48:12 661

原创 C++ ---Day01

C/C++的区别1. C++的输入输出C#include<stdio.h>int main(){ int a = 0; char ch = '\0'; scanf("%d %c",&a,&ch); printf("a = %d,ch = %c\n",a,ch); return 0;}C++#include<iostream>using namespace std;int main(){ int a

2022-03-09 08:45:30 106

原创 Linux---C语言连接数据库(1)

8:20书:mysql数据库,Linux程序设计中文第4版工具书:mysql必知必会mysql数据库数据库:是存放数据的仓库,是一个按数据结构来存储和管理数据的计算机软件系统,本质上是存放在磁盘上的文件数据库管理系统:是数据库系统的核心部分,主要完成对数据库的操作与管理功能RDBMS:关系数据库管理系统SQL:结构化查询语言数据库分类:(1)关系型数据库采用了关系模型来组织数据的数据库,关系模型就是指二维表格模型,而一个关系模型数据库就是由二维表及其之间的联系所

2022-03-09 08:43:28 1837 1

原创 C语言之函数调用机制

函数调用机制局部变量占用的内存是在程序执行过程中“动态”地建立和释放地,通过栈由系统自动管理进行的当任何一个函数调用发生时,系统都要做一下工作:(1)建立栈空间(2)保护现场:主调函数运行状态金额返回地址入栈(3)为被调函数中的局部变量分配空间,完成参数传递(4)执行被调函数函数体(5)释放被调函数中局部变量占用的栈空间(6)恢复现场:取主调函数运行状态及返回地址,释放栈空间(7)继续主调函数后续语句...

2022-01-09 22:17:46 329

原创 my_atoi函数实现

my_atoi函数实现int my_dec(const char* str){ int sum = 0; while (isdigit(*str)) { sum = sum * 10 + *str - '0'; str++; } return sum;}int my_oct(const char* str){ int sum = 0; while (isdigit(*str) && *str != '8' && *str != '9') {

2021-12-01 09:29:30 135

原创 算法---八大排序

算法1.冒泡排序//冒泡排序//时间复杂度O(n^2) //空间复杂度O(1)//稳定性:稳定void Swap(int* ap, int* bp){ assert(ap != NULL && bp != NULL); if (*ap > *bp) { int tmp = *ap; *ap = *bp; *bp = tmp; }}void BubbleSort(int* arr, int len){ assert(arr != NULL);

2021-11-17 01:22:34 73 1

原创 数据结构---不定长顺序表

头文件#pragma oncetypedef int ELEM_TYPE;#define INIT_SIZE 10typedef struct DSQlist{ ELEM_TYPE* data;//malloc申请的动态内存 int length; int listsize;//保存当前最大容量个数(以sizeof(ELEM_TYPE)为单位)}DSQlist, * PDSQlist;//初始化void Init_sqlist(PDSQlist plist);

2021-10-26 14:43:08 72

原创 C语言循环经典例题

1.提示用户输入一个数n,打印出1~n的所有偶数平方值int main(){ int n = 0; int i = 2; printf("input a number:\n"); scanf_s("%d", &n); while (i * i <= n) { printf("%d \n", i * i); i += 2; } printf("\n"); return 0;}2.一球从100米高度自由落下,每次落地后反跳回原高度的一般,再落下时,求它在第10次

2021-10-26 12:56:06 2368

原创 C语言实现扫雷游戏---位运算

//扫雷游戏#define ROWSIZE 12#define COLSIZE 12#define MINESIZE 64#define SHOWINIT 0x80 //@#define MAKEMINE 0x40 #define SHOWMINE 0x20 //##define MAKESUM 0x10#define SHOWSUM 0x0F#define CLEARINIT 0x7f //0111 1111#define CLEARMINE 0xDFtypedef un

2021-10-06 01:45:49 366

原创 8_11上机课

int Peach(){ int tmp = 1; for (int i = 10; i > 1; --i)//逆推的次数 //for(int i = 1;i<=10;++i) { tmp = (tmp + 1) * 2; } return tmp;}void Match(){ for (char a = 'x'; a <= 'z'; ++a) { for (char b = 'x'; b <= 'z'; ++b) { for (c

2021-10-06 01:44:12 51

原创 顺序栈的实现

typedef struct Stack{ ELEM_TYPE* base; int top; int stacksize;}Stack, * PStack;void Init_Stack(PStack ps);bool Push(PStack ps, ELEM_TYPE val);bool Pop(PStack ps, ELEM_TYPE* rtval);bool Top(PStack ps, ELEM_TYPE* rtval);int Get_Lengt

2021-10-06 01:41:04 68

原创 C语言数据类型

数据类型1.基本类型字符型char整型 short,int ,long ,unsigned实型(单精度型float,双精度型double)枚举类型enum2.构造类型数组类型 [ ]结构体类型 struct共用体类型 union3.指针类型*4.空类型void整形类型char;//1short;//2int;//4long int;//4long long;//8unsigned char;//1unsigned short;//2unsigned in

2021-10-05 15:10:02 135

原创 RedisList

1.函数指针主要目的是泛型,提高通用性char ch = 'a';char *p = &ch;char **sp = &ch;[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-01XgpXPI-1632805181133)(C:\Users\Lenovo\AppData\Roaming\Typora\typora-user-images\image-20210908160437452.png)]int main(){ const char

2021-09-28 13:00:28 62

原创 HashTable

理想的情况,希望不经过任何比较,一次存取便能得到所查记录,在记录存储位置和它的关键字之间建立一个确定的对应关系f,对于关系f称为哈希函数在查找时,根据这个对应关系f找到给定值K 的像哈希表#define NIL -1#define m 13typedef int KeyType;struct ElemType{ keyType key;//关键码 void *ptr;//value};typedef struct{ ElemType data[m]; in

2021-09-28 12:58:48 83

原创 malloc

双链表typedef int ElemType;typedef struct DuListNode{ struct DuListNode*prev; struct DuListNode*next; ElemType data;}DuListNode;typedef struct { struct DuListNode*head; int cursize;}DuLinkList;DuListNode* FindValue(DuLinkList* pli

2021-09-28 12:57:00 88

原创 2021-7-1

栈区的空间是自动进行分配和释放的,由系统进行int main(){ int a;//内存随机分配,随机值 int* p;//野指针 int* s = NULL;//0 int* s = nullptr;//(void*)0}失效指针:原来指向这个空间是有效的,随着程序的运行,变成无效的。int* fun(){ int ar[10] = { 12,23,34,45,56,67,78,89,90,100 }; int* p = &ar[0]; return p;}int

2021-08-14 10:25:46 106

原创 2021-7-29 指针

指针void Swap_Int(int* ap, int* bp){ assert(ap != nullptr && bp != nullptr); int tmp = *ap; *ap = *bp; *bp = tmp;}void Move_K(int* ar, int n, int k){ assert(ar != nullptr); k = k % n; Reverse_Ar(ar, 0, k - 1); Reverse_Ar(ar, k, n - 1);

2021-08-06 12:46:14 49

原创 2021-7-27

printf 和 puts() 等价,printf有回车,puts()没有回车,除非函数带回车\0 空字符int main(){ char stra[] = "yhping"; char strb[] = { 'y','h','p','i','n','g' }; int lena = sizeof(stra);//7 int lenb = sizeof(strb);//6 lena = strlen(stra);//6 lenb = strlen(strb);//>6 /

2021-08-04 18:15:29 53

原创 2021-7-25

定义的是指针变量,存放的是地址这个值int* fun(){ int ar[10] = { 12,23,34,45,56,67,78,89,90,100 }; //如果数组开辟空间很大,可正常打印 //没有对原来的数据进行覆盖 int* p = ar; return p;}int main(){ int* p = fun(); //调用完之后,将空间还给栈,此时指针已失效,没有所指的空间 for (int i = 0; i < 10; ++i) {

2021-08-03 13:18:58 89

原创 2021-7-23指针

指针int main(){ int a = 10, b = 20; int* p = &a; *p = 100; p = &b;}const修饰的是指针指向的值,不可改变;但是自身的值可以改变int main(){ int a = 10,b = 20; const int* p = &a; //int const* p = &a;与上面的式子等价,const修饰的是指针指向的值 //int x = *p; //*p = 100;//erro

2021-08-02 09:31:35 70

原创 第二次上机课

#include<stdio.h>#include<stdlib.h>#include<assert.h>#include<ctype.h>int Statistics(const char* str){ assert(str != nullptr); int alpha = 0; int blank = 0; int num = 0; int other = 0; while (*str != '\0') { if (isalph

2021-07-31 11:47:27 57

原创 2021-7-22

指针与数组void fun(int* p)//*p = *&x = x{ *p += 100;}int main(){ int x = 0; int* s = &x;//把x的地址给s fun(s);//&x fun(&x);//与上面表达式等价//s = &x;}指针的两种状态:int a = 10;int *p = &a;int *p = nullptr;//空低地址作为变量的首地址值传递形参不改变实参

2021-07-29 00:55:41 90

原创 2021-7-20

看不懂#include<stdio.h>int main(){ int a[5] = { 1,2,3,4,5 }; int* p = (int*)(&a + 1); printf("%d", *(p - 1)); return 0;}mov ebx,10h;---直接访问mov [ebx],10h;---间接访问数据存放在内存中,,内存中字节的编号称为地址(指针),地址从0开始,依次增加,对于32位环境,程序能够使用的最大内存为4GB最小:0x000

2021-07-25 17:54:43 403

原创 2021-7-17

数组是包含给定类型的一组数据,并将这些数据依次存储在连续的内存空间中<类型>数组名[元素数量]—大于0的整数常量表达式int ar[5];描述:ar是一个数组,开辟了5个元素(空间),每个元素都是整形类型int ar[5] = {12,23,34,45,56};int ar[5] = {};//初始化为0int br[5] = {12,23,34,45,56};int cr[5] = {12,23,34};int main(){ int a = 10; si

2021-07-23 23:31:46 81

原创 2021-7-16

<1>//从0加到n-1for(int i = 0;i<n;++i){ }<2>//从1向上加到nfor(int i = 0;i<=n;++i){ }int main(){ int i = 0; int n = 5; for(i = 0;i<n;++i) { printf("%",i); } printf("for end:\n");//5 printf("

2021-07-20 17:26:22 101

原创 2021-07-14

5.9.求出它是几位数分别输出每一位数字按逆序输出个位数字#include<stdio.h>#include<math.h>////输入一个数,判断它是几位数int Print(int n){ int count = 0; while(n>0) { n /= 10; printf("%d\n",n); count++; } return count;} //顺序分别输出每一位数字int Print_Order(int n){ .

2021-07-18 22:54:37 125

原创 2021-07-15

函数,学会调用函数不要把所有函数全部写在主函数中,主函数调用即可模块化程序设计思想:分解成小的模块把大问题分解成小问题,函数的功能单一标准库:<assert.h>条件宏编译,将参数与0比较 <ctype.h> <math,h> <stdlib.h> //基础工具:内存管理,程序工具,字符串转换,随机数,算法记住上面四个头文件里面的函数名,功能用户自定义函数组成:函数返回类型+函数名+形参列表+函数体; i

2021-07-18 22:49:14 44

原创 2021-6-27

在C语言中,++i和i++效果一样#include<stdio.h>int main(){ const int n = 0; for(int i = 0;i < n;i++) { } for(int i = 0;i<n;i++) { }}golang只有 i++ 一种形式在面向对象语言C++/Java中,i++效率大于++iint main(){ int a = 3,

2021-07-16 19:35:43 81

原创 2021-6-24

```c#include<stdio.h>#include<math.h>float TriangleArea(float a, float b, float c){ float d = -1.0f; if (a + b > c && a + c > b && b + c > a) { float p = (a + b + c) / 2; float s = sqrt(p * .

2021-07-16 19:34:25 57

原创 2021-6-20

常量:1.字面常量2.用#define定义的宏常量3.用const关键字修饰的变量,称为常变量4.枚举变量5.字符常量和字符串常量字面常量有类型 int sum = 10;//10就是字面常量int是四个字节,给sum变量4个存储空间10 = 100;//这是错误的表达式,表达式必须是可修改的左值全局函数—函数外局部函数—函数内块内函数#include<stdio.h>int g_max = 10;//全局变量int main(){ int a = 10;/

2021-07-16 19:30:16 113

原创 2021-6-17

必须掌握的技能操作系统计算机网络数据结构与算法16位到32位的微机原理Mysql学会使用参考手册,注册博客,记录自己日常所感所悟(写自己的理解,总结)刷题网站:牛客网LeetCode看书到P561.1软件数据和指令。程序加软件的集合1.2文件外存分类:可执行文件—.exe,.bat,*.com不可执行文件VS 2019 先建立项目,后建立源文件源文件是在机器码上执行的。.c/.cpp(源文件)(文本)*.h头文件(文本)*.i预编译文件(文本).o/.obj(二

2021-07-16 19:28:49 64

原创 2021-07-10

static 静态关键字,延长生存期,但不改变可见性(作用域)可见性(作用域):标识符能够被使用的范围,只有在作用域内标识符才可以被使用生存期(生命期):程序的执行阶段编译器是如何看见static就让它只执行一次?extern关键字逻辑表达式简洁与简洁或欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必

2021-07-16 19:26:47 74

空空如也

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

TA关注的人

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