自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

程伟康的博客

爱一个人最好的方式, 是经营好自己, 给对方一个优质的爱人。

  • 博客(54)
  • 资源 (3)
  • 收藏
  • 关注

转载 C++类的静态成员详细讲解

C++类的静态成员详细讲解在C++中,静态成员是属于整个类的而不是某个对象,静态成员变量只存储一份供所有对象共用。所以在所有对象中都可以共享它。使用静态成员变量实现多个对象之间的数据共享不会破坏隐藏的原则,保证了安全性还可以节省内存。静态成员的定义或声明要加个关键static。静态成员可以通过双冒号来使用即::。 在C++中类的静态成员变量和静态成员函数是个容易出错的地方,本文

2015-11-11 16:32:23 344

转载 浅淡C/C++中的typedef和#define

在C/C++中,我们平时写程序可能经常会用到typedef关键字和#define宏 定义命令,在某些情况下使用它们会达到相同的效果,但是它们是有实质性的区别,一个是C/C++的关键字,一个是C/C++的宏定义命令,typedef 用来为一个已有的数据类型起一个别名,而#define是用来定义一个宏定义常量。下面谈谈两者在实际使用中应当注意的地方。1.typedef关键字   typ

2015-11-11 15:58:00 407

转载 浅淡数组和指针

谢谢大牛的分享,看完后让我对数组与指针有了更深刻的理解,在此谢过!转载:http://www.cnblogs.com/dolphin0520/archive/2011/11/09/2242138.html        http://www.cnblogs.com/dolphin0520/archive/2011/11/09/2242419.html    

2015-11-11 15:36:08 390

转载 static用法详解(精华篇)

static用法详解一. 面向过程程序设计1、静态全局变量  在全局变量前,加上关键字static,该变量就被定义成为一个静态全局变量。我们先举一个静态全局变量的例子,如下:  //Example 1    #include     void fn();    static int n; //定义静态全局变量    void main()  

2015-11-11 14:43:44 541

转载 结构体、共用体简单比较

结构体、共用体 1 #include 2 union 3 { 4 int i; 5 char x[2]; 6 }a; 7 8 void main() 9 { 10 a.x[0] = 10; 11 a.x[1] = 1; 12 printf("%d",a.i); 13 } 14 答案:266 15 16

2015-11-11 14:39:59 514

转载 strlen函数,strcat函数,strcpy函数,strncpy函数,strcmp函数

strlen函数,strcat函数,strcpy函数,strncpy函数,strcmp函数strcpy函数:char *strcpy(char *Dest , const char *Src)  {      assert((Dest != NULL) && (Src != NULL));      char *address = Dest;      wh

2015-11-11 14:37:54 495

转载 memmove,memcpy函数详解

写一个函数,完成内存之间的拷贝void* mymemcpy( void *dest, const void *src, size_t count )  {      char* pdest = static_castchar*>( dest );      const char* psrc = static_castconst char*>( src );     

2015-11-11 14:36:08 1098

转载 strcpy函数详解及strcpy与strncpy比较

1 #include 2 #include 5 void myStrcpy(char* Dest, const char *Src) 6 { 7 assert((Dest!= NULL)&&(Src!=NULL)); 8 while((*Dest = *Src)!='\0') 9 {10 Dest++;11 Src++

2015-11-11 14:33:33 1086

转载 C++重点知识(精华篇)

来源:http://www.cnblogs.com/lzjsky/archive/2011/01/18/1938507.html2. 什么是“引用”?申明和使用“引用”要注意哪些问题?    答:引用就是某个目标变量的“别名”(alias),对引用的操作与对变量直接操作效果完全相同。申明一个引用的时候,切记要对其进行初始化。引用声明完 毕后,相当于目标变量名有两个名称,即该目标原名

2015-11-11 14:23:13 1112

转载 static深入详细解释

面试题:static有什么作用?答:在C语言中,static主要定义全局静态变量,定义局部静态变量,定义静态函数 一、       定义全局静态变量 :在全局变量前面加上关键字static,该全局变量变成了全局静态变量。全局静态变量有以下特点:(1)       在全局数据区内分配内存(2)       如果没有初始化,其默认值为0(3)       该变量

2015-11-11 11:44:10 390

转载 内存泄露概述

内存泄露   1.简介        在计算机科学中,内存泄漏(memory leak)指由于疏忽或错误造成程序未能释放已经不再使用的内存的情况。内存泄漏并非指内存在物理上的消失,而是应用程序分配某段内存后,由于设计错误,失去了对该段内存的控制,因而造成了内存的浪费。内存泄漏与许多其他问题有着相似的症状,并且通常情况下只能由那些可以获得程序源代码的程序员才可以分析出来。然而,有不少人习

2015-11-11 10:49:24 668

转载 C++中指针和引用的区别(超详细)

指针和引用主要有以下区别:引用必须被初始化,但是不分配存储空间。指针不声明时初始化,在初始化的时候需要分配存储空间。引用初始化后不能被改变,指针可以改变所指的对象。不存在指向空值的引用,但是存在指向空值的指针。注意:引用作为函数参数时,会引发一定的问题,因为让引用作参数,目的就是想改变这个引用所指向地址的内容,而函数调用时传入的是实参,看不出函数的参数是正常变量,还是引

2015-11-10 17:40:31 58552 18

转载 C++内存管理学习堆和栈

来源:http://c.chinaitlab.com/basic/936306_2.html 一 C++内存管理1.内存分配方式   在讲解内存分配之前,首先,要了解程序在内存中都有什么区域,然后再详细分析各种分配方式。 1.1 C语言和C++内存分配区  下面的三张图,图1图2是一种比较详细的C语言的内存区域分法。图3是典型的C++内存分布图,简单

2015-11-10 17:38:17 364

转载 c++程序的内存格局

c++程序的内存格局通常分为四个区:全局数据区;代码区;栈区;堆区(即自由存储区)。     全局变量、静态数据、常量存放在全局数据区,所有类成员函数和非成员函数代码存放在代码区,为运行函数而分配的局部变量、函数参数、返回地址等存放在栈区,余下的空间都被称为堆区。    new和delete,malloc和free,都从堆中分配和释放内存块,但在具体操作上两者有很大的区

2015-11-10 17:27:30 382

转载 malloc和new有什么区别

malloc和new有以下不同:new、delete是操作符,可以重载,只能在c++中使用。malloc、free是函数,可以覆盖,c、c++中都可以使用。new可以调用对象的构造函数,对应的delete调用相应的析构函数。malloc仅仅负责分配内存,free仅仅回收内存,并不执行构造和析构函数。new、delete返回的是某种数据类型指针,malloc、free返回的是void指针。

2015-11-10 17:24:09 556

转载 sizeof和strlen的区别

sizeof和strlen的区别第一个例子:   char *ss="0123456789";   sizeof(ss)=4, ss是指向字符串常量的字符指针。   sizeof(*ss)=1, *ss是第一个字符。第二个例子:   char ss[]="0123456789";   sizeof(ss)=11, ss是数组,计算到“\0”位置,因此是(10+1)。

2015-11-10 17:16:09 250

转载 结构体字节对齐

结构体字节对齐      在用sizeof运算符求算某结构体所占空间时,并不是简单地将结构体中所有元素各自占的空间相加,这里涉及到内存字节对齐的问题。从理论上讲,对于任何 变量的访问都可以从任何地址开始访问,但是事实上不是如此,实际上访问特定类型的变量只能在特定的地址访问,这就需要各个变量在空间上按一定的规则排列, 而不是简单地顺序排列,这就是内存对齐。     计算结构变量的大小

2015-11-10 17:03:12 260

转载 C/C++ 语言中的表达式求值(底层次的理解)

在此,首先向裘老师致敬!裘宗燕:C/C++ 语言中的表达式求值经常可以在一些讨论组里看到下面的提问:“谁知道下面C语句给n赋什么值?”m = 1; n = m+++m++;最近有位不相识的朋友发email给我,问为什么在某个C++系统里,下面表达式打印出两个4,而不是4和5:a = 4; cout C++ 不是规定 注:运行a = 4; cout

2015-11-10 15:01:16 550

转载 C++经典功能特性之运算符重载

运算符重载   C++中预定义的运算符的操作对象只能是基本数据类型。但实际上,对于许多用户自定义类型(例如类),也需要类似的运算操作。这时就必须在C++中重新定义这些运算符,赋予已有运算符新的功能,使它能够用于特定类型执行特定的操作。运算符重载的实质是函数重载,它提供了C++的可扩展性,也是C++最吸引人的特性之一。   运算符重载是通过创建运算符函数实现的,运算符函数定义了重

2015-11-10 14:52:43 492

转载 C++语言中四大转换算子static_cast ,const_cast,reinterpret_cast,dynamic_cast

用法:static_cast ( expression )该运算符把expression转换为type-id类型,但没有运行时类型检查来保证转换的安全性。它主要有如下几种用法:①用于类层次结构中基类(父类)和派生类(子类)之间指针或引用的转换。进行上行转换(把派生类的指针或引用转换成基类表示)是安全的;进行下行转换(把基类指针或引用转换成派生类表示)时,由于没有动

2015-11-10 14:34:31 568

转载 qsort(),sort()排序函数

一.qsort()函数功 能: 使用快速排序例程进行排序头文件:stdlib.h用 法: void qsort(void *base,int nelem,int width,int (*fcmp)(const void *,const void *));参数: 1 待排序数组首地址 2 数组中待排序元素数量 3 各元素的占用空间大小 4 指向函

2015-11-10 14:25:02 466

原创 memset,memcpy,strcpy函数使用方法

将s所指向的某一块内存中的每个字节的内容全部设置为ch指定的ASCII值, 块的大小由第三个参数指定,这个函数通常为新申请的内存做初始化工作, 其返回值为指向S的指针。需要的头文件在C中 在C++中  C++98标准哈 1. void *memset(void *s,int c,size_t n)总的作用:将已开辟内存空间 s 的首 n 个字节的值设为值 c。

2015-11-10 14:00:44 728

原创 C++中成员以其在类中声明的顺序构造

分析以下代码的输出:12345678910111213141516171819#includeusing namespace std; class A{public

2015-11-10 13:56:40 1319

转载 代理服务概述

代理服务器(Proxy Server)是一种重要的服务器安全功能,它的工作主要在开放系统互联(OSI)模型的会话层,从而起到防火墙的作用。代理服务器大多被用来连接INTERNET(国际互联网)和Local Area Network(局域网)。       概念编辑代理(英语:Proxy),也称网络代理,是一种特殊的网络服务,允许一个网络终端(一般为客户端)通过这

2015-11-10 11:40:48 1705

转载 Fiddler (五) Mac下使用Fiddler

Fiddler是用C#开发的。  所以Fiddler不能在Mac系统中运行。  没办法直接用Fiddler来截获MAC系统中的HTTP/HTTPS,    Mac 用户怎么办呢?Fiddler可以允许“远程连接”。  我们可以利用这个间接来实现Fiddler捕获Mac系统发出的HTTP/HTTPS 阅读目录:使用虚拟机虚拟机的网络使用“Bridged” 模式配置虚拟

2015-11-10 11:28:12 496

转载 Fiddler (四) 实现手机的抓包

Fiddler是我最喜爱的工具,几乎每天都用, 我已经用了8年了。 至今我也只学会其中大概50%的功能。 Fiddler绝对称得上是"神器", 任何一个搞IT的人都得着的。小弟我立志, 一定要把Fiddler的所有的功能和用法都写出来。 写成一个完整系列的教程。Fiddler不但能截获各种浏览器发出的HTTP请求, 也可以截获各种智能手机发出的HTTP/HTTPS请求。Fi

2015-11-10 11:25:32 395

转载 Fiddler (三) Composer创建和发送HTTP Request

之前已经写过两篇Fiddler的文章了,分别是【Fiddler教程】 【Fiddler script用法】。  我准备把Fiddler写成一个系列。Fiddler的功能还有很多, 很多功能都没有被挖掘出来。这次我们介绍Fiddler中的一个非常有用的功能Composer,是用来创建和发送HTTP Request的。Composer的使用方法很简单,看下就知道用了。 阅读

2015-11-10 11:18:34 305

转载 Fiddler (二) Script 用法

通过前一篇博客 【小坦克: Fiddler教程】,我们了解了Fiddler的基本用法,  现在我们来看看Fiddler的高级用法. Fiddler Script。   Fiddler中的script 可以让我们自动修改Http request和Response 的内容。  而不用手动地去下"断点"来修改http Request或Response中的值。 阅读目录Fidd

2015-11-10 11:15:08 590

转载 Fiddler 教程

Fiddler是最强大最好用的Web调试工具之一,它能记录所有客户端和服务器的http和https请求,允许你监视,设置断点,甚至修改输入输出数据. 使用Fiddler无论对开发还是测试来说,都有很大的帮助。阅读目录Fiddler的基本介绍Fiddler的工作原理同类的其它工具Fiddler如何捕获Firefox的会话Firefox 中使用Fiddler插件Fiddler如何捕获H

2015-11-10 11:08:06 438

转载 C++强大的背后

来源:http://www.cnblogs.com/miloyip/archive/2010/09/17/1828449.html 在31年前(1979年),一名刚获得博士学位的研究员,为了开发一个软件项目发明了一门新编程语言,该研究员名为Bjarne Stroustrup, 该门语言则命名为——C with classes,四年后改称为C++。C++是一门通用编程语言,支持多

2015-11-09 18:41:26 237

转载 C++类的静态成员详细讲解

在C++中,静态成员是属于整个类的而不是某个对象,静态成员变量只存储一份供所有对象共用。所以在所有对象中都可以共享它。使用静态成员变量实现多个对象之间的数据共享不会破坏隐藏的原则,保证了安全性还可以节省内存。静态成员的定义或声明要加个关键static。静态成员可以通过双冒号来使用即::。 在C++中类的静态成员变量和静态成员函数是个容易出错的地方,本文先通过几个例子来总结静

2015-11-09 18:37:16 211

转载 转载:看c++ primer 学习心得

学习C++ Primer时遇到的问题及解释chenm91 感觉:l          啰嗦有时会掩盖主题:这本书确实有些啰嗦,比如在讲函数重载的时候,讲了太长一大段(有两节是打了*号的,看还是不看?),而在TC++PL中则精炼很多。这让人有些很难接受,很多时候好像让人有些找不到纲了。l          举例偏难有时也会掩盖主题:这本书使用的例子“文本查询系

2015-11-09 18:29:16 360

转载 C语言指针5分钟教程

指针、引用和取值什么是指针?什么是内存地址?什么叫做指针的取值?指针是一个存储计算机内存地址的变量。在这份教程里“引用”表示计算机内存地址。从指针指向的内 存读取数据称作指针的取值。指针可以指向某些具体类型的变量地址,例如int、long和double。指针也可以是void类型、NULL指针和未初始 化指针。本文会对上述所有指针类型进行探讨。根据出现的位置不同,操作符 * 既可以用来声明一

2015-11-09 17:57:29 254

原创 变量声明和定义的深入理解

我们在程序设计中,时时刻刻都用到变量的定义和变量的声明,可有些时候我们对这个概念不是很清楚,知道它是怎么用,但却不知是怎么一会事,下面我就简单的把他们的区别介绍如下:(望我的指点对你受益)变量的声明有两种情况:1、一种是需要建立存储空间的。例如:int a 在声明的时候就已经建立了存储空间。2、另一种是不需要建立存储空间的。 例如:extern int a 其中变量a是在别

2015-11-09 17:21:36 349

转载 从单线程到多线程之线程通信

线程之间通信的两个基本问题是互斥和同步。  线程同步是指线程之间所具有的一种制约关系,一个线程的执行依赖另一个线程的消息,当它没有得到另一个线程的消息时应等待,直到消息到达时才被唤醒。线程互斥是指对于共享的操作系统资源(指的是广义的"资源",而不是Windows的.res文件,譬如全局变量就是一种共享资源),在各线程访问时的排它性。当有若干个线程都要使用某一共享资源时,任何时刻最多

2015-11-09 11:33:15 318

转载 从单线程到多线程之线程控制

WIN32线程控制主要实现线程的创建、终止、挂起和恢复等操作,这些操作都依赖于WIN32提供的一组API和具体编译器的C运行时库函数。  1.线程函数  在启动一个线程之前,必须为线程编写一个全局的线程函数,这个线程函数接受一个32位的LPVOID作为参数,返回一个UINT,线程函数的结构为:UINT ThreadFunction(LPVOID pParam)

2015-11-09 11:29:59 468

转载 从单线程到多线程-概述

程(Process)是具有一定独立功能的程序关于某个数据集合上的一次运行活动,是系统进行资源分配和调度的一个独立单位。程序只是一组指令的有序集合,它本身没有任何运行的含义,只是一个静态实体。而进程则不同,它是程序在某个数据集上的执行,是一个动态实体。它因创建而产生,因调度而运行,因等待资源或事件而被处于等待状态,因完成任务而被撤消,反映了一个程序在一定的数据集上运行的全部动态过程。  线程

2015-11-09 11:27:13 1259

转载 深入理解C++中的mutable关键字

mutalbe的中文意思是“可变的,易变的”,跟constant(既C++中的const)是反义词。  在C++中,mutable也是为了突破const的限制而设置的。被mutable修饰的变量,将永远处于可变的状态,即使在一个const函数中。  我们知道,如果类的成员函数不会改变对象的状态,那么这个成员函数一般会声明成const的。但是,有些时候,我们需要在const的函数里面

2015-11-07 14:47:16 371

转载 用GDB调试程序(七)

改变程序的执行———————    一旦使用GDB挂上被调试程序,当程序运行起来后,你可以根据自己的调试思路来动态地在GDB中更改当前被调试程序的运行线路或是其变量的值,这个强大的功能能够让你更好的调试你的程序,比如,你可以在程序的一次运行中走遍程序的所有分支。        一、修改变量值    修改被调试程序运行时的变量值,在GDB中很容易实现,使用GDB的pr

2015-11-07 10:21:47 241

转载 用GDB调试程序(六)

七、设置显示选项    GDB中关于显示的选项比较多,这里我只例举大多数常用的选项。    set print address     set print address on         打开地址输出,当程序显示函数信息时,GDB会显出函数的参数地址。系统默认为打开的,如:                (gdb) f        #0  set_quo

2015-11-07 10:17:02 324

转载别人 高仿QQ界面,可用于即时通迅工程

首是转载的别人的,因为原文件下载不下来,自己有所以上传上来了, 是高仿QQ界面的主面板,如QQ好友列表,在线状态,头像,如SkinTab,SkinWnd等使用

2015-08-31

CButtonST类Demo

CButtonST使我目前见过的最强大,功能最全的CButton派生类。撰写本文的目的不在于技术的讨论,而是希望能够为各位提供关于CButtonST的使用参考,以提高编写程序的速度。

2015-08-09

程序员面试宝典

1、里面有大量的面试题,主要以C,C++为主,也有JAVA的。主要考查的逻辑思维能力等 2、面试题主要有微软,Google,金山,百度,Intel等等,值得学习,提高一下

2015-05-15

空空如也

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

TA关注的人

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