
C/C++
文章平均质量分 67
csdn[-1]
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
C语言学习 18-9-18
C语言学习 18-9-18数据类型关键字各种数据类型间会有不同,比如一些数据类型是数字,而另一些则是字母(更广泛的说是字符)。数据的关键字intlongshortunsignedcharfloatdouble循环与判断while循环首先是while语句的伪代码:while(expression){ /* loop a...原创 2018-10-15 10:11:57 · 161 阅读 · 0 评论 -
C语言学习 18-9-19
C语言学习 18-9-19vs下断点作用:用来调试程序,当出现错误却又不知道错误在哪时使用。数字变英文对于C语言来说,不管字符还是数字型数据,都是以二进制存储在内存中,对于字符型变量“a-z”和“A-Z”也是使用ASCII码来表示的,‘a’表示 97, ‘z’为122,‘A’为65, ‘Z’为90。三个数找最大会使用判断语句。#include<stdio.h>in...原创 2018-10-15 10:31:16 · 165 阅读 · 0 评论 -
C语言学习 18-9-20
练习题水仙花数水仙花数是指三位数,这三位数满足:个位2 + 十位2 + 百位**2 = 这个三位数本身。#include<stdio.h>int main(){ int num = 100; int the_uint, the_decade, the_hundred; for(num; num<1000; num++) { the_hundred = ...原创 2018-10-15 10:47:34 · 137 阅读 · 0 评论 -
C语言学习 18-10-22
getchar函数1. 使用getchar读入连续字符并回显getchar函数返回的是一个int型的数据,用来保存输入字符的ASCII值。#include &amp;lt;stdio.h&amp;gt;int main(){ char c; while((c = getchar()) != '\n') { printf(&quot;%c&quot;, c); } printf(&am原创 2018-10-22 22:18:06 · 162 阅读 · 0 评论 -
C语言学习 18-10-23
1.结构体声明一个结构体struct NAMENOTE{ int id; char *name; char *tel_num;};对结构体起“别名”起别名即为使用typedef:typedef struct NAMENOTE{ int id; char *name; char *tel_name;}NameNote;声明一个结构体变量(...原创 2018-10-25 23:22:59 · 138 阅读 · 0 评论 -
C语言学习 18-10-25
1.手动在末尾添加链表(1).判断该链表是否是个空链表,若是,则直接将头指针指向添加的节点(2).若不是空链表,原创 2018-10-29 15:06:34 · 176 阅读 · 0 评论 -
C语言学习 18-10-26
1.在链表任意位置插入节点(1) 节点的内容包括 id、name、telphone number以及p_next,可编写程序对任意 id 位置之前进行插入;(2) 实现步骤:1.) (头插入)判断是否 head 的 id 即为所要插入的位置,若是,则先将 node 的 p_next 指向 head 所指向的位置,再将 head 指向 node;2.) (中间插入)若 id 不是头位置,则找...原创 2018-10-29 15:55:52 · 130 阅读 · 0 评论 -
C语言学习 18-9-21
1.逻辑 与、或、非逻辑与逻辑与在C语言中使用 && 进行表示,比如:if(a == 10 && b == 10){ //do something}表示当 a = 10且b = 10 时执行中括号里面的语句,这里需要注意的是,当 && 左边的判别条件不成立(即为假)时,右侧判别式不进行,因为不论右侧的值为 TRUE 还是 FALS...原创 2018-10-29 16:22:19 · 122 阅读 · 0 评论 -
C语言学习 18-10-24
1.链表链表可以按照链式存储多个结构体类型的数据,在C语言中使用要指向的结构体类型的指针来指向下一个节点(类似于python中单链表使用class Node里的node.next属性)。使用一个记录个人信息的结构体来进行链表的演示:#include "stdio.h"typedef struct NAMENOTE{ int id; char *name; char *tel_nu...原创 2018-10-24 21:44:13 · 135 阅读 · 0 评论 -
C语言学习 18-11-5
1.双向链表双向链表是每个单项链表的节点都多了一个指向前一个节点的指针。#include <stdio.h>typedef struct DLLNODE{ struct DLLNODE *p_last; int id; struct DLLNODE *p_next;}DLLNode;int main(){ printf("Hello SLAM\n"); re...原创 2018-11-06 10:53:50 · 160 阅读 · 0 评论 -
C语言学习 18-11-6
1.枚举类型1.) 关键字 enum2.) 声明一个枚举类型enum AA {ONE, TWO, THREE};enum BB {FOUR, FIVE=100, SIX};typedef enum CC {SEVEN, EIGHT, NINE} C;其中的ONE表示为0,TWO表示为1,THREE表示为2,以下类同。注意:FIVE表示为100,SIX表示为101。3.) 声明一个...原创 2018-11-07 09:44:38 · 124 阅读 · 0 评论 -
姓名册项目
#include &quot;stdio.h&quot;#include &quot;stdlib.h&quot;#include &quot;time.h&quot;#include &quot;string.h&quot;#include &amp;lt;string.h&amp;gt;typedef struct N原创 2018-11-15 15:52:02 · 334 阅读 · 0 评论 -
C语言学习 18-11-8
1.Win32项目对于Win32项目,需要创建指定的Win32项目工程。1.) 对于一个Win32项目,需要调用头文件“Windows.h”;2.) win32应用程序的入口点:WinMain()函数;3.) WinMain()函数需要给定四个参数,分别是HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR IpCmdLine,int nCm...原创 2018-11-15 16:17:00 · 170 阅读 · 0 评论 -
C语言学习 18-11-9
1.检测按下按键信息并弹出对话框1.) 检测发生按键信息:WM_KEYDOWN2.) 弹出对话框:MessageBox(句柄函数,弹出对话框显示的内容,对话框的标题,对话框的样式)MessageBox(h_wnd, "Mother Fucker!!!!", "Surprise", MB_OK);1.若想按下键盘 A-Z 键弹出对话框,则需要判断wParam,该值为按键的虚拟码值。if(...原创 2018-11-15 16:18:04 · 179 阅读 · 0 评论 -
C语言学习 18-11-12
1.画两个矩形并使其移动需要在定时器处理消息中进行绘制图像。case WM_TIMER: hdc = GetDC(h_wnd); a += 5; // 需要设置a为静态变量 b += 10; // 需要设置b为静态变量 Ellipse(hdc, a, 50, a+50, 100); Ellipse(hdc, b+50, 200, b+100, 250);...原创 2018-11-15 16:18:44 · 160 阅读 · 0 评论 -
C++学习 18-11-19
1.C++语言中的头文件与C语言不同,C++中的系统标准头文件不是 .h 结尾的,而是类似于 iostream 等,而且其中包含 stdio.h、stdlib.h 等所含的函数及关键字。C++的代码是以 .cpp 为后缀名的,cpp代表 C PLUS PLUS,意即 C++。2.C++中的界面项目C语言中有Win32项目,表示C语言中的带图形界面,类似的,C++中也有其专有的带图形界面的项...原创 2018-11-20 17:46:15 · 120 阅读 · 0 评论 -
C++学习 18-11-20
1.增强的for循环1.在C++中,可以在任意一个位置声明变量for(int i=0; i&lt;10; i++){ cout &lt;&lt; i &lt;&lt; endl;}2.范围 for循环在C++中会有一种类似于python中迭代器的操作,类似以下的循环:int arr[5] = {1, 2, 3, 4, 5};for (int value:arr){ cout...原创 2018-11-22 14:15:08 · 126 阅读 · 0 评论 -
C++项目 18-11-21-截图工具
1.整体1.开发工具vs20122.语言C++2.了解带窗口的应用程序1.做一个带窗口的应用程序Win32:就是Windows API(函数)MFC :类库,对Windows API的一种封装3.编写程序1.创建Win32项目(不选中创建空项目)2._tWinMain 是程序的入口函数3.函数: MyRegisterClass()注册窗口类,窗口的样子由该函数决定wc...原创 2018-11-22 14:16:33 · 791 阅读 · 0 评论 -
C++学习 18-11-21
1.构造函数1.概念百度百科:构造函数 ,是一种特殊的方法。主要用来在创建对象时初始化对象,即为对象成员变量赋初始值,总与new运算符一起使用在创建对象的语句中。特别的一个类可以有多个构造函数 ,可根据其参数个数的不同或参数类型的不同来区分它们即构造函数的重载。2.调用的时机创建对象时进行调用,类似于 python 中定义类时的 init 方法。3.是否可重载可以对构造函数进行重载,比...原创 2018-11-23 10:37:24 · 130 阅读 · 0 评论 -
C++学习 18-11-22
1.昨天的 链表类1.首先确定链表类都需要一些什么1.需要定义一个节点来存放内容,typedef struct NODE;2.需要 链表的头指针、尾指针以及链表的长度信息;3.链表类的构造函数以及析构函数;4.链表类的成员函数:在末尾添加节点 PushBack、在表头弹出节点 PopFront、显示链表信息;class CList{private: typedef struct ...原创 2018-11-23 10:37:56 · 154 阅读 · 0 评论 -
C++学习 18-11-23
C++学习 18-11-231.常量成员(const成员)1.在公有属性中定义一个 const int m_age;(常量成员),则一定需要在初始化列表中初始化。class CPerson{private: const int n_age; // 常量成员,一定要在初始化列表中初始化 int n_name;public: CPerson():n_age(123),...原创 2018-12-06 14:50:26 · 131 阅读 · 0 评论 -
C++项目-键盘记录器 18-11-25
C++项目 18-11-251.木马1.定义特洛伊木马是指潜伏在用户电脑中,窃取本机信息或控制权的程序,而程序所执行的操作并非出于用户意愿。2.木马与病毒的区别1.木马与病毒最大的区别是:木马不会传播2.病毒是以破坏为目的3.木马可能拥有的功能1.后门:方便下次再进入2.Rootik:隐藏自身(不被发现),都是在Ring0层做的(Ring0层为硬件层)3.远程控制:拥有该功能的...原创 2018-12-06 14:51:30 · 1128 阅读 · 2 评论 -
C++学习 2018-11-26
C++学习 2018-11-261.继承1.继承是指将父类的内容拷贝一份到子类中2.语法:class CChina:public CPerson 派生类(子类) 基类(父类)3.继承的作用继承是为了提升复用的。4.派生类的大小父类的大小 + 自己的大小5.同名成员基类与派生类中有同名的成员时,通过作用域来区分(调用)相同的成员class CFather{public:...原创 2018-12-06 14:52:29 · 112 阅读 · 0 评论 -
C++学习 2018-11-27
C++学习 2018-11-271.多态1.什么是多态?父类的指针 指向一个子类对象,通过父类的指针调用实际子类的成员函数,使父类的指针有多种形态。2.多态基于什么实现?多态基于虚函数实现,虚函数要基于重写。3.虚函数实现多态的原理?通过函数指针组成的虚函数列表(v_Table),还需要一个记录表头指针(vfptr);当调用一个虚函数的时候,通过vfptr找到v_Table中的对应...原创 2018-12-06 14:53:08 · 148 阅读 · 0 评论 -
C++学习 2018-11-28
C++学习 2018-11-281.取得虚函数列表中的内容CFather p1 = new CFather;typedef void (PFUN)();PFUN aa = (PFUN)((int)(int)p1 + 0);#include <iostream>using namespace std;class CFather{public: virtual vo...原创 2018-12-06 14:53:49 · 118 阅读 · 0 评论 -
C++学习 2018-11-29
C++学习 2018-11-291.复习1.头文件2.单独的头文件不参加编译2.头文件重复包含1.若在一个文件中引用两个头文件,则会出现“class 类名”重定义错误2.解决方法1#ifndef PERSON_H#define PERSON_H头文件代码#endif//PERSON_H3.解决方法2在开头加上:#pragma once3. #ifdef#ifdef UN...原创 2018-12-06 14:54:17 · 144 阅读 · 0 评论 -
C++学习 2018-11-30
C++学习 2018-11-301.迭代器1.迭代器可以看作一个指针2.用来遍历链表和容器2.list头文件1.定义链表对象2.操作链表元素使用 push_back() 方法:在链表尾部添加元素使用 push_front() 方法:在链表头部添加元素使用 pop_back() 方法:在链表尾部删除元素使用 pop_front() 方法:在链表头部删除元素#include &l...原创 2018-12-06 14:54:48 · 143 阅读 · 0 评论 -
C++学习 2018-12-3
C++学习 2018-12-31.第一个C++小程序1.Anna的宠物小屋有一些笼子,每个笼子可以放不同的动物,但只能放一只或者没有,动物种类有:CCat、CDog、CSnake。实现一个简单的管理系统,可增加、删除笼子中的动物,查看每个笼子中装的是什么动物,买一些笼子,带着动物出去玩(画类图、写代码)。1.CAnimal类1.CAnimal类是有关动物的基类,包括成员属性:n_str_n...原创 2018-12-06 14:55:24 · 638 阅读 · 0 评论 -
C++学习 2018-12-4
1.Win32复习1.Win32内容包括 句柄 ,API(接口函数),消息宏。2.画刷之类的称为 GDI。3. HDC 与 HWND 称为用户对象。4. 进程、 线程 称为内核对象。5. 句柄 是当作指针来用的。6.句柄与API的关系操作内存空间必须有的东西。7.when:什么时候–消息what:做什么事–句柄与API8.几个常用函数1.HINSTANCE:实例的句柄(当...原创 2019-01-05 14:54:23 · 272 阅读 · 0 评论 -
C++学习 2018-12-5
1.复习贪吃蛇1.贪吃蛇所包括的函数基于C语言的Win32应用程序void CreateApple()void ShowApple()void CreateSnake()void ShowSnake()void SnakeMove();bool IsEatApple()void GrowUp()bool IsGameOve()消息处理函数WndProc(){case ...原创 2019-01-05 14:55:35 · 132 阅读 · 0 评论 -
C++学习 2018-12-6
1.飞机大战类图1.对于一个游戏,我们可以使用游戏壳作为模版,设计一个接口类,通过接口类来完成实际的游戏。2.游戏壳使用的是Win32应用程序的通用模版,主要有以下五部分:1)设计窗口:主要是完成类对象 WNDCLASSEX wndclass 的创建以及该对象的参数的确定;2)注册窗口:通过函数 RegisterClassEx 来判断 wndclass 是否注册成功,注册成功则继续,不成功...原创 2019-01-05 14:56:26 · 221 阅读 · 0 评论 -
C++学习 2018-12-7
1.继续完成飞机大战1.继续完成back背景类1.要贴图的话就需要先导入资源文件,选择 解决方案中的资源文件,右键添加->资源->BitMap,找到要添加的位图文件。1)这里涉及到一个问题,我们需要保证我们的可执行文件能够在我们自己的电脑上运行,也能够在他人的电脑上运行,因此,在添加资源文件时,需要注意资源文件的路径问题(最好修改为相对路径)。2.设计back类的成员,设计为两...原创 2019-01-05 14:57:42 · 190 阅读 · 0 评论 -
C++学习 2018-12-10
上回书我们说到将飞机和背景都贴到了窗口上,子弹也贴成功了,那么现在就需要让子弹能够自主移动了。1.飞机大战1.在上一次的飞机大战设计中,我们发现了一个问题:飞机移动会一卡一卡的,这是因为我们在不同的刷新周期进行贴背景图和贴飞机图导致的,需要一个有效的方法进行解决,这里我们引入 双缓冲 的概念。1) 双缓冲 是指我们在将某些东西(如五本书)从A处移动到B处时,正常的做法是一本一本移动,而为了省...原创 2019-01-05 14:59:22 · 230 阅读 · 0 评论 -
C++学习 2018-12-11
1.飞机大战1.完成FoePlaneBox类1.与子弹盒子类似,需要一个用来存放所有飞机的链表:list<CFoePlane*> m_lstFoePlane。2.需要有三个成员函数:CreateFoePlane、AllFoePlaneShow、AllFoePlaneShow。1)CreateFoePlane 函数用来创建敌人飞机,在创建敌人飞机的时候,我们需要产生不同类型飞机的...原创 2019-01-05 15:00:08 · 243 阅读 · 0 评论 -
C++学习 2018-12-12
1.飞机大战1.判断玩家飞机是否与敌人飞机发生碰撞1.经过前几天的学习,我们已经可以编写出一个相当厉害的飞机大战游戏了(玩家飞机永不爆炸以及按下空格就会开挂…),那么接下来需要让玩家飞机可以被撞从而使游戏结束(这下游戏稍微正常点了喂…)。2.在判断玩家飞机是否与敌人飞机发生碰撞的时候,我们仍然使用的点与矩形判别法(类似于之前子弹与敌人飞机碰撞的判断)。1)为了简化判断的流程(正常情况下是将...原创 2019-01-05 15:01:36 · 221 阅读 · 0 评论 -
C++学习 2018-12-13
1.单例模式1.把bflag放到类中:解决bflag为外部共有变量的问题1.改为static类型,static bool bflag,并在类外初始化。#include <iostream>using namespace std;// bool bflag = false; // 在main函数中可以将其重置为false,此时就可以继续生成新的类,不满足单例的要求c...原创 2019-01-05 15:02:41 · 226 阅读 · 0 评论 -
C++学习 2018-12-17
1.STL:标准模板库1.STL有六大组件1.容器(序列容器和关联容器)2.迭代器3.算法(algorithm)4.空间配置器5.配接器6.仿函数2.vector容器1.vector(int) vecvec是一个容器对象,相当于int arr[];vector(int) vec(10) 相当于 int arr[10];2.遍历vec中元素的方法1.迭代器int main...原创 2019-01-05 15:14:07 · 155 阅读 · 0 评论 -
C++学习 2018-12-18
1.在vector中装入一个list1.第一个数组装1,第二个装1、2,第三个装1、2、3,以此类推,第七个装1、2、3、4、5、6、7;使用迭代器进行输出。int main(){ vector<list<int>> vec(7); for(int i=0; i<7; i++) { for(int j=0; j<=i; j++) { v...原创 2019-01-05 15:15:13 · 133 阅读 · 0 评论 -
Linux与数据结构 2019-1-28
继续剩余的Linux基本命令1.Linux基本命令31.拷贝:dd if=tree of=lemon32.创建一个空文件:dd if=/dev/zero of=lemon bs=1M count=1;其中/dev/null 外号叫无底洞,你可以向它输出任何数据,它通吃,并且不会撑着;/dev/zero 是一个输入设备,你可你用它来初始化文件,从里面独处来的数据都是0。33.压缩包管理1....原创 2019-03-05 16:08:59 · 119 阅读 · 0 评论 -
操作系统与网络 2019-1-29
1.继续完成进程间通信1.1 完成接收端的内存文件映射接受1.在 Recv 端添加一个按钮 接收映射文件内存 ;2.在 CRecvDlg::OnBnClickedButton3 函数中,打开内存文件映射: HANDLE h_mapping_file = ::OpenFileMapping(FILE_MAP_ALL_ACCESS, FALSE, L"HH") ;3.获取成功则获取内存空间: ...原创 2019-03-05 16:10:00 · 150 阅读 · 0 评论