自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 文本文件编辑相关命令(二)删除,移动,复制

删除rm rm可以用来移除文件或文件夹,常用的主要有两个参数:忽略提示强制删除 指令 :-f 执行rm命令时linux会默认询问是否确定执行删除,如果文件不存在也会有提示信息,如果不想总是看到这些提示信息可以加上【-f】忽略提示 递归删除 指令:-r 会将给出的目录和其子目录均递归地删除。(如果想删除文件夹加这个参数就对了!)rmdir rmdir可以用来删除目录但只能用来删除空目录

2017-12-21 16:41:00 688

原创 文本文件编辑相关命令(一)新建

创建文件/文件夹touch touch是修改文件的时间属性的,如果文件不存在它会顺手创建一个,由于这个顺手太方便了,所以一般用这个命令来创建空白文件。创建空白文件 直接指令后接文件名或文件路径即可 修改文件时间 可修改的时间选项有: 访问时间 (atime) 指令:-a touch -a file 修改时间 (mtime)指令 : -m touch -m file 设定时间

2017-12-21 15:11:59 993

原创 一些总结

关于学校学习我们学校是导师制的,大三会根据自己喜欢的方向选择相应的工作室在导师的带领下进行为期一年的项目开发,所以虽然我们是师范类院校,但软件工程专业的就业率一直是全校第一,毕竟呆了一年工作室再怎么混也至少有2次实际的项目开发经验,找个一般的工作不是什么问题。我当时进的是c++工作室偏应用软件开发。大三一年的工作室学习,实际接受的知识比大一和大二加起来还多,期间做了自己第一款基于q

2017-12-19 20:00:01 201

原创 win32应用程序消息机制(窗口的建立过程)

窗口创建过程注册窗口类 win32中通过调用RegisterClassEx API来注册窗口样式,相当于指定一个窗口模板. 通过WNDCLASSEX结构体来指定窗口类的样式,WNDCLASSEX 是一个窗口风格样式的设置结构体. 具体代码如下//由入口函数WinMain调用此函数ATOM MyRegisterClass(HINSTANCE hInstance){ //

2017-05-14 18:57:55 723

原创 windows入口函数

win32可执行程序 win32可执行程序分为两类:基于控制台和基于窗口的,基于控制台的程序它的入口函数是传统的main,而基于窗口的程序它的入口函数是WinMain。这里以基于窗口的应用程序为例。win32项目入口函数  在win64位系统下通过vs2015建立win32项目 程序主函数为:  int APIENTRY wWinMain(_In_ HINSTANCE hInstance,

2017-05-14 14:53:45 7476

原创 字符集

字符集简介 字符集顾名思义就是多个字符的集合,这些字符包括包括:各国家文字、标点符号、图形符号、数字等。常见字符集名称:ASCII字符集、GB2312字符集、BIG5字符集、 GB18030字符集、Unicode字符集等。ASCLL 字符集//ASCLL字符集共包含255个字符,它也是我们编程最先接触的字符集UTF字符集 有ISO组织制定出的标准字符集,有UTF-8,UTF-16,

2017-05-13 19:13:38 438

原创 windows基础数据类型

windows数据类型简介windows数据类型是微软使用define,typedef在基础数据类型上进行的的一次再包装,它只是windows自己定义只能基于windows SDK,所以并不是c通用的。这些windows数据类型很多时候只是为了使语义更好理解所以很多数据类型在本质上是一样的只是名字不一样。windows常用数据类型 以下均以VS2015,32位系统为例。因为在32位和64位下,

2017-05-13 18:26:49 565

原创 windows API分类

基础服务(Base Services)提供对Windows系统可用的基础资源的访问接口.包括:文件系统(file system)外部设备(device)进程(process)线程(thread)访问注册表(Windows registry)错误处理机制(error handling)这些功能接口位于: 16位Windows下的kernel.exe、krnl286.exe或krnl

2017-05-13 16:44:26 4393 1

原创 windows版本变迁

windows简介windows版本变迁16位图形用户界面早期版本的 Windows 通常被看作仅仅是运行于 MS-DOS 系统中的一个图形用户界面, 不是操作系统. 主要因为它们在 MS-DOS 上运行并且被用作文件系统服务. 不过, 即使最早的16位版本的Windows也已经具有了许多典型的操作系统的功能,包括拥有自己的可执行文件格式以及为应用程序提供自己的设备驱动程序(计时器、图形、打印机、鼠

2017-05-13 15:51:31 1934

原创 函数模板

什么是函数模板函数模板是模板的一种,区别于类的地方只是它修饰的是函数,而类模板修饰的是类。 函数模板出现的目的是为了让程序员可以编写和类型无关的代码。也就是说编写一个函数可以多种类型的参数通用。 函数模板的格式 template <typename 形参名,typename 形参名,...> 返回类型 函数名(参数列表){ //函数体}template 和typename 是关键字,其

2017-03-09 17:25:16 405

原创 c++中的异常机制

简介throw:抛,在出错的地方抛出异常信息。 try:尝试捕获throw抛出的异常信息。 catch:有个参数用来接收捕获的异常信息(参数类型需和抛出的错误信息类型保持一致) catch(…):捕获所有异常信息#include<iostream>using namespace std;int divide(int numOne,int numTwo){ if (0 == numT

2017-03-05 23:06:41 262

原创 类之间的关系

继承前面已经论述过,继承关系是一种纵向关系,是指基类和派生类之间的关系。 在UML图中用空心三角形表示。 关联关联表示:一个类包含另一个类的成员的情况。是一种弱关系。 具体的理解它表示的是两种类的对象需不需要知道对方,如果只是一方需要知道另一方则这种关联又叫单项关联,如果两方均需要知道对方则这种关联叫双向关联。聚合聚合关系表示的是整体与部分的关系,使用空心菱形表示。一个类(假设A)属于另一

2017-03-05 21:05:56 316

转载 markdown编辑器语法——字体、字号与颜色

转载自:[微wx笑博客](http://blog.csdn.net/testcs_dn/article/details/45719357/)   Markdown是一种可以使用普通文本编辑器编写的标记语言,通过类似HTML的标记语法,它可以使普通文本内容具有一定的格式。但是它本身是不支持修改字体、字号与颜色等功能的!  CSDN-markdown编辑器是其衍生版本,扩展了Markdow

2017-02-26 18:51:11 338

原创 c++基类和派生类的构造析构函数调用顺序

#include <iostream>using namespace std;class Base{public: Base::Base() { cout << "基类构造函数" << endl; } Base::~Base() { cout << "基类析构函数" << endl; }};class Son

2017-02-11 13:29:06 1561

原创 c++继承

继承的概念 继承是类与类之间的关系,继承者称为子类,被继承者称为父类。而继承就是子类从父类那里继承父类想让子类继承的一些东西(成员函数,成员变量)。父类和子类也叫基类和派生类。继承的几种方式c++中继承主要有三个方式:public,protected和private三种方式。 这三种修饰符也可以写在类成员前面用以修饰类成员的访问权限,具体用法我这篇博文中有提到:c++类 大致如下:

2017-02-11 13:10:14 201

原创 运算符重载 c++

运算符重载形式 重载是c++的一大特性,不仅可以用于一般函数重载,还可以用于运算符重载,对于一些基本数据类型来说运算符可以直接拿来使用,所以运算符重载一般是应用于对象之间,而对象之间的运算符重载主要分为成员运算符重载和友元运算符重载两种形式。成员运算符重载:表示在类内定义的这个与运算符相关的函数是属于类的成员函数。所以他可以直接由对象调用对于双目运算符他只需要一个参数(另外一个参数其实就是调用它

2017-01-05 15:20:06 807

原创 构造函数

构造函数的定义构造函数是用于对象生成时,为对象的成员变量赋初值的地方。只要有新对象生成就会调用它。构造函数是没有返回值的,所以定义构造函数时只需要使用类名作为构造函数名前面用访问修饰符修饰即可。如果用户没有在类中自己定义构造函数的话,在生成对象的时候编译器会自动调用一个默认构造函数,这个默认构造函数中不包含任何语句。一旦用户自己定义构造函数时默认构造函数就不存在了。#include<iostrea

2016-12-31 17:25:42 417

原创 c++类----class

++什么是类?c是面向过程的编程语言,c++是面向对象的编程语言,而c++之所以属于面向对象的语言就是因为类的存在,那么究竟什么是类呢?类的定义 类是定义同一类所有对象的变量和方法的蓝图或原型。类是不能直接拿来使用的,你在使用它之前必须首先对它进行实例化,建立这种类型的一个对象,打个比方如果说对象是一栋楼的话,类就相当于建这所大楼的图纸。如果你想使用这栋大楼的话你只有设计图纸有什么用,你必

2016-12-24 21:01:37 375

原创 引用

引用的含义 引用表示的给一个变量起一个别名,对引用的操作等同于对变量本身的操作。引用的用法因为函数的参数传递只存在 两种方式:1.值传递 :在调用函数时,会替形参在为函数分配的栈区中开辟内存空间并将实参的值拷贝一份给形参,在函数内部对形参的操作并不会影响函数外部实参的值。2.地址传递:本质上也是值传递,只不过传递的值是地址,所以形参拷贝的值也是地址,虽然形参和实参的地址数据存放的地方不一样但它

2016-12-24 19:47:36 245

原创 类型转换

c风格的类型转换(type)expression#include<iostream>using namespace std;int main(){ int num = (int)1.0003;//c语言风格类型转换 cout << num<<endl; system("pause"); return 0;} 这种转换是c风格的类型转换,也叫强制转换c++风格

2016-12-22 20:53:46 256

原创 内联函数

内联函数 内联函数是为了使调用函数时达到和宏定义形同的功能,之所以不直接使用宏定义是因为宏定义是预处理器来执行命令的,而不是编译器。而预处理器只是就行简单的内容替换,没办法进行语法分析,所以使用了内联函数来解决这个问题。 内联函数是使用inline关键字声明的函数,也叫内嵌函数,它主要的作用是解决程序的运行效率。内联函数的优缺点优点: 内联函数并不会像其他函数一样新建栈,它只会将代码

2016-12-22 17:45:09 421

原创 默认实参

默认实参是为了事先提供默认的实参便于更加灵活方便的使用函数#include<iostream>using namespace std;void MyCout(int n=100) //这里的n=100就是默认实参{ cout <<n<< endl;}int main(){ int a=200; //因为MyCout存在默认实参所以我在调用的时候可以不传参数直接调用

2016-12-22 17:04:22 488

原创 函数重载导致的二义性

函数重载主要是一个匹配问题,分为精准匹配,提升匹配和类型转换匹配三种:精准匹配#include<iostream>#include "string.h"using namespace std;void MyCout(long n){ cout << "参数为长整形!" << endl;}void MyCout(int n){ cout << "参数为整形!" << endl

2016-12-22 15:37:35 3729

原创 重载

函数重载:在相同的声明域中的函数名相同的,而参数表不同的,即通过函数的参数表而唯一标识并且来区分函数的一种特殊的函数。#include<iostream>using namespace std;void MyCout(int n){ cout << "输入的是整形!" << endl;}void MyCout(float n){ cout << "输入的是浮点型!" <<

2016-12-22 11:09:34 306

原创 new delete

堆操作 在c语言中我们对堆进行操作主要通过两个函数 malloc 和 free , 而在c++中提供了更为方便的new和delete来达到同样的功能 但new和delete并不等价于malloc和free,malloc和free是函数,而new和delete是运算符new 和 delete的使用相比较malloc 和free 而言new和delete的用法要简单得多。#inclu

2016-12-21 22:06:26 389

原创 域作用符

域作用符域作用符主要用来限定变量的作用域 比如:#include<iostream>#include "string.h"using namespace std;int num = 10; //全局空间int main(){ int num = 20; //栈空间 cout << "当前num的值为:"<<num << endl; system("pause")

2016-12-21 21:49:10 1996 1

原创 头文件的三种标准

标准c++库比如 iostream这种用法是c++特有的,在c语言中是没有的。.h文件比如 stdio.h.h文件是从c语言直接继承来的。在c++中可以通过引用这些头文件来使用c语言中的一些独有的函数.h只是文件名的后缀,所以它只是起到一种区别其他文件的效果,并没有其他特殊的含义。c**格式的比如 cstdbool这种格式的头文件也是从c语言继承来的,与.h类型不同的是它是符合c++规范的,所

2016-12-21 20:57:47 1087

原创 各版本bool的区别

在写代码的过程中经常会遇到多种布尔类型,下面主要介绍三种常见布尔类型bool: 它的意义是0为false非零为true,这种布尔类型也叫原生布尔类型,因为其他版本主要是通过0和1来实现类似的功能,只有它所真正对应的是true和false。#include<iostream>using namespace std;int main(){ bool b = -1; if (b==t

2016-12-21 20:29:40 422

原创 枚举值的组合使用

有时候枚举只返回一项会显得不够用,比如新建一个枚举类型week它总共有7项分别代表周日到周一,声明一个week类型的枚举值work用来表示一个人的值日安排,这个人的值日安排可能不止一天,如果work的值只能为week7个枚举项中的一个显然是不够用的。这时候就需要用到枚举的组合。|和||,&和&&的区别 想要使用枚举的组合就需要知道|和||。&和&&之间的关系“|”和“||” “|”和“|

2016-12-08 15:20:59 2506

原创 不定参的宏定义使用

什么是不定参 函数中的参数个数可以不固定,比如printf()函数可以一次输出若干个变量的值,这种情况就叫做不定参函数。不定参的使用//test.h#include<stdio.h>#include<stdarg.h>void writeLog(int line,const char *fromat, ...){ va_list args; static char l

2016-12-08 14:23:34 2827

原创 struct和nuion

structstruct即结构体,是有若干成员组成的构造类型,其中包含的成员可以是基本的数据类型,也可以是结构体用法如下:struct Student { char name[20]; char sex[3]; char tel[11];};int main(){ struct Student stu1; strcpy(stu1.name, "张三");

2016-11-12 22:13:07 407

原创 static和extern的用法

staticstatic是变量的一种属性,表示静态变量 生命周期:因为静态变量是存储在程序静态区,而程序的静态区会随着程序的开始而申请随着程序的结束而回收,所以静态变量的生命周期也就取决于当前程序的运行和结束时间 作用域:静态变量的作用域取决于生命的位置,声明全局变量时静态变量的作用域在此文件内,声明局部变量时静态变量的作用域在声明它的局部范围内,等同于局部变量的作用域。虽然静态局部变量的作

2016-11-11 15:55:05 327

原创 define和typedef

struct和typedef都是自定义数据类型,用于在基础类型不够的情况下,基于自己的需要自己定义的特定数据类型 typedeftypedef即type define 也就是类型的定义,使用它可以将一些基础数据类型的类型名另起一个通俗易懂的别名(只能对现有的类型名起别名并不能生成一个新的数据类型) 比如:int main(){ typedef int index; int temphttp:/

2016-11-11 13:37:48 361

原创 文件

open:FILE * fopen(const char * path,const char * mode);第一个参数path表示要打开的文件路径,第二个参数mode表示要以什么样的方式打开,如果打开成功则会返回一个文件指针(指向当前打开文件的缓冲区)以下是mode的可选值:r:只读方式打开,如果打开文件不存在,不会新建;w:只写,如果文件不存在会新建一个文件,如

2016-10-17 20:37:40 211

原创 字符串处理函数

字符串处理函数头文件#include字符串长度:strlen​(字符数组名): 会返回参数中字符数组中字符串的不包含‘\0'的长度。字符串拼接:strcat(str1,str2):会将字符串str2拼接到字符串str1的后面,但是这里有一个问                      题,如果str1的长度不够大的话就会导致字符串溢出,就会覆盖字符        

2016-10-17 20:36:06 645

原创 字符串处理函数fgets()和gets()

scanf():一次只能接受一个单词,不能接受一行gets():接受一整行的输入,输入多少就读取多少,但有可能输入的长度和要赋值的变量目标不一致而导致缓冲区溢出,这也就意味着它可能会改变不属于当前程序所在空间的数据,一次在新标准C11中已经被废弃不用了,不提倡使用gets()。gets_s():​新标准C11中的可选项,因为是可选的所以可能有的编译器并没有实现这个函数 所以也就不支

2016-10-17 20:33:41 755

原创 数组和指针

什么是指针:​存放地址的变量指针的加减:指针的加减和指针指向的变量类型有关,指针++并不一定是加1,而是加上一个他所指向的变量类型所占的空间比如:int a=100;int *p=&a; p++;这个时候p存放的地址实际上加的是4,因为一个int类型占4个字节。​什么是数组:相同数据类型的元素按一定顺序排列的集合,把有限个类型相同的变

2016-10-17 20:32:19 198

原创 函数

什么是函数函数是为了避免相同功能的代码重复书中写而将其提取为函数供调用的c语句的集合,需要该功能的时候,直接调用该函数即可,不用每次都堆叠一大堆的代码。需要修改该功能的时候,也只要修改和维护这一个函数即可。函数包括3个部分:1.函数名    具有唯一性(标准c不支持函数重载)​ 2.函数返回值   执行函数时通过return来将函数体内的值返回到函数外,可以通过调用

2016-10-17 20:28:12 221

原创 循环和分支

什么是循环?循环是指只要满足条件就会​一直执行下去ps:循环必须设置一个循环退出条件,避免死循环​比如while​()int i=0;​while(i​{printf("%d",i)​i++;}则最终会输出: 012 说明while后面大括号​中的语句总共执行了3次,第四次时i=3,不满足int

2016-10-17 20:25:42 410

原创 运算符和语句

语句语句的组成运算符:  ‘ =  ’ ‘ + ’  ‘  - ’  ‘ * ’  ‘ / ’‘ % ’‘ ++ ’‘  --  ’sizeof等关键字:int break if else等表达式​:值语句类型​赋值语句: 数据对象(空间),左值(可修改值),右值(​作为右值时是不可修改的值)复合语句:循环语句(for,while

2016-10-17 20:22:33 272

空空如也

空空如也

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

TA关注的人

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