自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

C与嵌

You and me share

  • 博客(33)
  • 收藏
  • 关注

转载 为什么要用设计模式?

1、设计模式是前人根据经验总结出来的,使用设计模式,就相当于是站在了前人的肩膀上。      2、设计模式使程序易读。熟悉设计模式的人应该能够很容易读懂运用设计模式编写的程序。      3、设计模式能使编写的程序具有良好的可扩展性,满足系统设计的开闭原则。比如策略模式,就是将不同的算法封装在子类中,在需要添加新的算法时,只需添加新的子类,实现规定的接口,即可在不改变现有系统源码的情况

2016-04-27 08:57:14 2991 1

原创 程序集反射 Type 类

Type 类 表示类型声明:类类型、接口类型、数组类型、值类型、枚举类型、类型参数、泛型类型定义,以及开放或封闭构造的泛型类型。这个类是线程安全的。 Type 为 System.Reflection 功能的根,也是访问元数据的主要方式。使用 Type 的成员获取关于类型声明的信息,如构造函数、方法、字段、属性和类的事件,以及在其中部署该类的模块和程序集。 Type 是允许多个实现的抽象基类。

2016-04-26 20:38:37 635

原创 反射——Reflection

反射的相关定义: 审查元数据并收集关于它的类型信息的能力。元数据(编译以后的最基本数据单元)就是一大堆的表,当编译程序集或者模块时,编译器会创建一个类定义表,一个字段定义表,和一个方法定义表等。   System.reflection命名空间包含的几个类,允许你反射(解析)这些元数据表的代码   System.Reflection.Assembly    System.Refl

2016-04-26 20:29:53 522

原创 C# 窗体加载事件委托被忽视的环节?委托事件声明定义

public delegate void EventHandler(object sender, EventArgs e);委托声明 public event EventHandler Load; //事件声明,相当于定义私有的委托变量 this.Load += new System.EventHandler(this.VideoForm_Load);//注册方法  privat

2016-03-23 17:57:34 1326

转载 虚析构函数(√)、纯虚析构函数(√)、虚构造函数(X)

一. 虚析构函数 我们知道,为了能够正确的调用对象的析构函数,一般要求具有层次结构的顶级类定义其析构函数为虚函数。因为在delete一个抽象类指针时候,必须要通过虚函数找到真正的析构函数。 如: class Base { public:    Base(){}    virtual ~Base(){} }; class Derived: public Ba

2015-08-02 00:53:47 562

原创 Summary Day36

进程间通信: 1使用管道进行进程间的通信 (1)有名管道 mkfifo xxx.pipe (2) 无名管道 int pipe(int pipefd[2]); 文件描述符 pipefd[0]代表读端,pipefd[1]代表写端 2. 使用共享内存实现进程间的通信 步骤: 获取key值,使用ftok函数 创建、获取共享内存,使用shmget函数 接挂共享内存,使用shma

2015-06-17 13:05:53 710

原创 Summary Day35

银行账户管理系统(模拟ATM的功能) 1.综合项目 1.1 项目名称    银行账户管理系统(模拟ATM) 1.2 项目功能    开户、销户、存款、取款、查询、转帐 1.3 项目架构    采用C/S结构进行设计 (1)客户端    提供一个界面给用户选择,将用户选择的业务发送给服务器处理,等待处理结束后,显示给用户 (2)服务器    接受客户端发来的业务信息

2015-06-15 23:26:19 596

原创 Summary Day34

1. 信号的处理 1.1 信号集的概念和使用 信号集结构体: typedeg struct { unsigned ling int __val[1024 / (8 * sizeof(unsigned l))];   } __sigset_t; typedef __sigset_t sigset_t;  信号集的相关处理函数 sigemptyset() => 清空 sigfills

2015-06-14 01:46:26 653

原创 Summary Day33

1. 文件管理 1,1 fcntl  函数 (1)F_SETLKW 功能与F_SETLK类似,所不同的是加不上锁并不是返回失败而是等待,直到可以加上该锁为止 (2)F_GETLK 表示试图将第三个参数描述的锁加到第一的参数指定的文件上如果能加上锁但不会去加,而是 将该锁的类型改为F_UNLCK;如果不能加上锁,则将文件中已经存在的锁信息通过第三个参数带出来, 并且将给文件进行加锁的进

2015-06-09 23:26:21 718

原创 Summary Day32

1 . 文件管理 1.1 标C文件处理和UC文件处理函数的比较: 标C文件处理函数比UC的文件处理函数速度快,因为标C内部独立输入输出缓冲区, 会积累一定数量之后再写入文件,因此读写效率比较高 使用time命令可以获取进程的运行时间 time b.out real  0m0.081s  =>真实时间 user  => 用户态时间 sys => 内核时间 1.2 文

2015-06-09 01:00:41 1164

原创 Summary Day31

1.内存管理 1.1 比较内存管理的相关函数 STL new/delete malloc()/free() sbrk()/brk() mmap()/munmap() 1.2 内存处理函数的介绍 (1) mmap函数 #include void *mmap(void* addr, size_t length, int prot, int flagsm, int fd , off

2015-06-06 09:58:05 521

原创 Summary Day30

1.内存管理 1.1 进程中的内存区域划分   代码区   只读常理区    全局区    BSS     堆   栈 1.2 字符串存储形式之间的比较    字符指针,字符数组,字符动态内存 1.3 虚拟内存管理技术 Unix/Linux系统总的内存都是采用虚拟内存管理技术进行管理,即:每个进程都有0~4G的内存地址 (虚拟的并不是真实存在的),由操作系统负责把内存

2015-06-04 23:55:03 1019

原创 Summary Day29

1.  C语言的 错误处理 return 0;//程序正常结束 return -1;//程序异常结束 1.1  C语言通过返回值表示错误的形式,一般规则如下: (1)如果函数的返回值类型是int类型,并且函数的返回值不可能是负数时, 则返回0表示正常结束,返回-1表示出错 (2)如果函数返回值类型int 类型,函数的返回值可能是负数时, 使用指针作为函数形参将函数的结果带回去,然后使

2015-06-03 22:54:33 798

原创 Summary Day28

1. 环境变量的使用 1.1 基本概念 环境变量一般是指操.作系统中用来指定操作系统运行环境和应用程序环境的一些变量 pash 就是一个环境变量,路劲 1.2 基本配置 (1)Windows 系统中的配置 (2)unix/linux 系统中的配置 echo 字符串 => 字符串原样输出,回显 echo $SHELL  =>  获取SHELL的值,进行回显 echo $PAT

2015-06-02 23:32:10 677

原创 Summary Day27

1.  课程简介 1.1 课程阶段简介 1.2 Unix/linux系统下的高级c编程 2. Unix/Linux系统简介 1.1 Unix系统简介 1.2 Linux 系统的简介 3. gcc的基本使用 2.1 基本概念 原名叫做GNU C Compiler(GNU C 编程语言编译器),只是用于编译C语言,后来做一些扩展, 支持C++\OC等语言的编译,因此改

2015-06-01 20:47:58 664

原创 有序二叉树链式存储结构1——插入与遍历

// Filename : binary_tree.c // Author : LupingChen // Data : 2015.06.01 // Content : insert_data\travel_data #include #include //定义节点数据类型 typedef struct Node { i

2015-05-31 22:14:30 834

原创 队列的链式存储结构的实现3——完结编

// Filename : list_queue.c // Authot : LupingChen // Data : 2014.06.01 // Content : main\clear #include #include //定义节点数据类型 typedef struct Node { int data;//节点数据

2015-05-31 08:17:36 1084

原创 队列的链式存储结构的实现2 —— 出队查看队首尾元素计算元素个数

// Filename : list_queue.c // Authot : LupingChen // Data : 2015.05.30// Content : pop\get_head\get_tail\size //定义节点数据类型typedef struct Node { int data;//数据 struct Node next;//指向下一个节点} N

2015-05-31 00:36:30 2936 1

原创 队列的链式存储结构的实现1 —— 创建销毁判断满空入队

// Filename : list_queue.c // Author : LupingChen // Data : 2015.05.30 // Content : create\destory\full\empty\push #include #include //定义节点数据类型 typedef struct Node {

2015-05-31 00:21:40 1673

原创 Summary Day26

数据结构与算法 1. 算法的基本概念 1.1 概念: 计算机程序 = 数据结构 + 算法 算法就是对解决问题的方案进行准确而完整的描述,也就是描述如何解决问题 1.2 算法的评定标准 (1)时间复杂度 主要描述算法的时间消耗和问题解决规模的函数关系 (2)空间复杂度 主要描述算法的空间消耗和问题规模之间的函数关系 (3)正确性 (4)可读性 (5)程序的健壮性

2015-05-30 00:37:31 538

原创 Summary Day25

数据结构与算法 1. 二叉树 1.1 相关概念 在计算机中,二叉树是指每个节点最多只有两个子节点的树形结构 其中起始节点叫做根节点,整个二叉树只有一个根节点,除了根节点外每个数只有一个父节点 没有任何子节点的节点叫做叶子节点,除了根节点和叶子节点外,剩下只有枝节点(只有两个子节点) 二叉树每层中节点钧达到最大值为满二叉树 完全二叉树,在满二叉树的基础上叶子节点不满也靠左边

2015-05-28 23:22:31 579

原创 数组与指针相关累赘混淆概念的简析

在我们初级程序猿的编程学习中,经常遇到像数组指针、指针数组容易混淆语义的概念 再此小编在老师的指导下深入浅出的分析了一番,发现这类概念性短句有一个共性的特点 就拿数组指针和指针数组来说: 数组指针:把它分成两个部分 , 数组 和 指针 , 数组相当于形容词, 指针等同于名 词,而形容词一般用语修饰名词,所以数组用于修饰指针,语义在指针 可改为 数组的指针。可以看出,数组指针就是指

2015-05-27 23:52:16 551

原创 Summary Day24

数据结构与算法 链表 1.1  基本概念 由地址不连续的节点序列组成,彼此通过指针进行相互链接 构成的数据结构,叫做链表 1.2链表分类 (1)单向的线性链表 每一个节点除了存储数据元素本身外,还需要指针,用于记录下一个节点指针 叫做后指针,头指针,尾指针 (2)单项循环链表 在单项的基础上,为节点指向头指针 (3)双向线性链表 (4)双向循环链表 (5)数组链

2015-05-27 22:53:04 525

原创 堆栈顺序存储结构实现4——完结编(综合调试效果)

// Filename : Stack.c // Author : LupingChen // Date : 2015.5.27 // Content : main #include #include //.... //前面三遍可查询 int main(void) { //创建 Stack* ps = create(6); print

2015-05-27 07:39:27 511

原创 堆栈顺序存储结构实现3——遍历查看个数元素

// Filename : Stack.c // Author : LupingChen // Date : 2015.2.26 // Content : pop/size/peek #include #include //定义堆栈结构体数据类型 typedef struct { int* arr; //堆栈首地址 int len; //堆栈

2015-05-27 00:28:10 888

原创 堆栈的顺序存储结构实现2——栈满 栈空 入栈 出栈

// Filename : stack.c // Author : LupingChen // Date : 2015.5.26 // Content : empty.full .push.pop #include #include //声明堆栈结构体数据类型 typedef struct { int* arr[]; int l

2015-05-26 23:38:14 2132

原创 Summary Day23

数据结构与算法 1. 基于链式存储结构的栈实现 2. 队列的基本特征和实现 2.1 队列的特征 具有先进先出的数据结构叫做队列(Queue) FIFO(first in first out) 入队操作在队尾进行处理,出队操作在队首进行处理 其中队列中的第一个元素叫做队首元素,最后一个叫做 队尾元素 2.2 队列的基本操作 创建(create) \   销

2015-05-26 23:31:36 557

原创 堆栈的顺序存储结构实现1——堆栈的创建与销毁

// Filename : stack // Author : LupingChen // Date : 2015.05.35 // content : creat and destroy #include #include //堆栈结构体 typedef { int* arr; //存储空间首地址 int len; //存储空间大小 in

2015-05-26 00:44:28 1393

原创 Summary Day22

数据结构与算法 1、数据结构的概念和分类 1.1 基本的概念 在计算机中,数据结构就是指计算机描述和存储数据的方式 主要描述数据元素之间的逻辑关系以及计算机存储形式 空间复杂度,时间复杂度 计算机程序 = 数据结构 + 算法 1.2 基本的分类/层次结构 (1)逻辑结构 - 抽象层 主要描述数据结构元素之间的逻辑关系 (2)物理结构 - 结构层 主要描述数据元素之间的

2015-05-25 23:40:22 490

原创 Summary Day21

结构体类型: 1、结构体类型做形式参数使用 浪费时间和空间 2、结构体做返回值使用 浪费时间和空间 3、解决这个问题可用结构体指针 数据对齐与补齐: 1、变量地址是它自身大小的真数倍 (double存储区是4的真数倍) 2、结构体内部大小遵守数据对齐的, 造成空隙,让费空间(声明注意内部成员的排序) 3、结构体地址是占地最大的整数倍(double为4) (这个规

2015-05-24 23:21:33 700

原创 控制台版2048游戏C程序项目分析(仅供参考,后期代码实现结构有所调整)

C语言编程项目计划书 ----2048游戏 一.目的 了解C语言编程的问题分析和方案求解过程,提高抽象和建模能力;了解C语言编程的过程,体会编程思想;分工合作,提高团队合作意识。 二.项目概述 本次程序设计项目主要功能是在Linux控制台中实现模拟2048游戏。 程序主要的流程为: 1.游戏开始功能选择:开始新游戏或者读取保存游戏数据; 2.根据步骤1中的选择显示读取的或者新的游戏

2015-05-24 21:15:25 1372

转载 printf格式化输出的字体颜色效果

格式: CODE: printf("\033[字背景颜色;字体颜色m字符串\033[0m" );   printf("\033[47;31mhello world\033[5m"); 47是字背景颜色, 31是字体的颜色, hello world是字符串.  后面的\033[5m是控制码. 颜色代码: QUOTE: 字背景颜色范围: 40--49     字颜色: 30--39  

2015-05-24 20:54:46 1217

转载 直接获取键盘字符命令(游戏方向操作实例)

#include #include #include #include int getch(); void press_key(); int main() {    printf("Hello world!\n");    press_key();    return 0; } void press_key() {    prin

2015-05-24 10:30:52 688

空空如也

空空如也

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

TA关注的人

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