- 博客(15)
- 收藏
- 关注
原创 mini_httpd-对http服务器和CGI原理的理解
一、铺垫 http协议即超文本传输协议,我们在使用浏览器访问服务器的时候就是使用它,在传输层使用tcp协议,网络层使用ip协议,那么通过http协议到底是如何完成对服务器的访问从而将页面显示出来或者将数据提交到服务器进行处理的呢,这里就涉及httpd。注:以下只是对httpd运行原理以及设计思想的理解,对http报头我也不是特别清楚,见谅!二、httpd主函数都做了什么 &
2020-08-12 11:27:34
888
原创 C自定义类型
一、自定义类型基本概念 1、结构体 结构体就是将任意多个内置类型变量包含在一起形成的一个结构,结构特也可以嵌套定义,不能在内部定义自己结构的变量,因为是不完整的类型,但是可以定义指向自己类型的指针,这也是链表的原理,其定义形式如下:struct A{ int a; char b; short c[]; double *d; .
2020-06-05 23:39:08
247
原创 memcpy和memmove的区别
一、memcpy和memmove函数的用途 memcpy和memmove函数都是用来对内存进行操作的,两函数原型如下:void *memcpy( void *dest, const void *src, size_t count );void *memmove( void *dest, const void *src, size_t count ); 这两个
2020-06-04 23:29:54
456
原创 c++类与对象(一)
一、常方法 常方法是指在定义方法时在方法标签后加一个const,常方法就是不能修改类成员变量的方法。int a(int b, int c) const{ ......}二、类的大小及类的成员在内存中的存放 类中有成员变量,也有成员函数,成员变量有不同的值,但是成员函数都是相同的,多个类对象重复存储成员函数是
2020-05-31 19:35:52
1047
原创 c++动态内存管理
一、c++中动态内存管理方法 (1)动态内存分配new c++中使用new动态分配内存,其用法和malloc相似Type* a = new Type(x); new运算符在使用上比malloc更加便捷,并且与malloc相比,它不光能动态分配内存,而且会对所分配的内存进行初始化,new分配连
2020-05-31 19:22:31
155
原创 C++入门知识点
一、命名空间 用c++语言编写大型软件时,较多的变量和函数以及其他命名很可能会发生重复的状况,命名空间恰好解决了这一问题,使用命名空间对名称进行划分,不容易混淆名称。 c++标准库的命名空间为std,以标准库命名空间为例,看一下命名空间的三种使用方法。 1、用using和namespace关键字
2020-05-27 21:18:42
199
原创 指针数组和数组指针
一、指针数组和数组指针在定义上的不同int* arr[3]; //定义了一个指针数组int (*arr) [3]; //定义了一个数组指针 1、本质区别 指针数组和数组指针在本质上就有区别,指针数组是一个数组,数组里存放指针,数组指针是一个指针,指向一个数组。 2、原理 &nb
2020-05-26 12:18:32
1022
原创 数据的存储和部分注意不到的“隐式转换”及例题解析
注意:以下内容部分为我自己的理解,不一定完全正确,请适当参考。一、常见类型所占位数及数据范围printf("sizeof(char)=%d\n", sizeof(char));printf("sizeof(short)=%d\n", sizeof(short));printf("sizeof(int)=%d\n", sizeof(int));printf("sizeof(long)=%d\n", sizeof(long));printf("sizeof(long)=%d\n", sizeof(l
2020-05-24 19:24:02
273
原创 二叉树
树这一模块对于线性表模块而言就复杂一点,这种数据结构以现实中的树为模型来存储数据,而又以二叉树为研究和应用居多。二叉树是说在满足树也就是由根节点像叶子节点发散的基础上,又满足没个节点最多有两个子树这一条件,满足这样的条件的二叉树在逻辑思维上和具体实现方面都是较简单的。同样二叉树也有两种实现方式:链式表示的二叉树和线性表示的二叉树,其中线性表示的二叉树我们通常只用于表示完全二叉树,也就是堆。一、链式二叉树 链式二
2020-05-19 18:18:25
264
原创 扫雷
一、总体思路 我们需要两个数组来进行操作,一个数组来存放布置好的雷的信息,另外一个用于给玩家展示,需要注意的是,定义数组的大小时要比我们实际用到的大一圈,方便后边进行操作。 将雷数组初始化为0,展示数组初始化为*,先用随机函数布置雷,完了之后调用排雷函数,给玩家展示全是*的数组,玩家选择一个坐标,如果此坐标为雷,排雷失
2020-05-15 10:22:46
174
原创 线性表二——栈和队列
一、概念 1.栈 栈是一种只能在其一端存取数据的线性表,这种操作方法决定了它的一个特点:先进后出,后进先出,你可以把它想象为生活中任意一个只有一个口的容器,你只有把后边放进去的东西拿出来之后才能去取之前放进去的东西,栈存取数据的一端被称为栈顶. 2.队列 队列是在其一端插
2020-05-09 11:44:32
291
1
原创 线性表总结
一、概念 线性表是在逻辑意义上连续的一种组织数据的方式,以其在物理存储上的不同分为顺序表和链表。二、分类 1、顺序表 顺序表一般是以数组或者说是矢量容器这样的在内存上连续的方式来存放数据,它可以...
2020-05-06 18:37:17
212
原创 对逻辑与运算符“&&”和“||”的理解
铺垫: 逻辑与运算符的功能是的前后表达式进行相与的判断,即同为真结果才为真,只要有一个为假,结果就为假问题: 正因为有这一特点,为了节省时间,逻辑与在使用时具有短路特性,即当发现第一个表达式为假时就不会去做对第二个表达式的运算。**重点:**当我们知道有这一特性之后,在普通使用过程中只要恰当的去注意他就行了,但是这一特性有一个妙用,如下数据结构代码:if(plist != NULL &...
2020-05-02 23:54:16
545
原创 汉诺塔问题&&对递归的理解
一、汉诺塔问题源代码#include"stdio.h"//借助b将x个圆盘从a挪到cvoid hannuota(int x, char a, char b, char c){ if(x == 0) return; else if (x == 1) printf("%c->%c\n", a, c); //当只有一个圆盘时,直接从a挪到c else { hannuot...
2020-04-26 17:04:12
338
原创 VMware 启动Linux虚拟机黑屏的解决办法
VMware 启动Linux虚拟机黑屏*方法一以管理员身份运行windows命令行输入以下这条指令netsh winsock reset执行之后重启电脑再次打开虚拟机方法二可能是虚拟机的配置过高。修改配置修改配置将内存改为1G,处理器改为1个,然后再次开启虚拟机方法三多次重启电脑直到虚拟机启动成功...
2020-04-21 14:48:30
1433
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人