自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 delete[] delete区别

<br />例子:<br />char* p=new char[100];<br />delete p; <br />p=NULL;<br />//没有内存泄露<br />char* p=new char[100];<br />delete p[]; <br />p=NULL;<br />//也没有没有内存泄露<br /> <br /> <br />C++告诉我们在回收用 new 分配的单个对象的内存空间的时候用 delete,回收用 new[] 分配的一组对象的内存空间的时候用 delete[]。 <br

2010-06-29 10:06:00 535

原创 对面向对象的理解

<br />面向对象编程(Object-Oriented Programming)简称OOP技术,是开发计算机应用程序的一种新方法、新思想。<br />而OOP技术经常要使用许多代码模块,每个模块都只提供特定的功能,并且彼此独立,这样就增大了代码重用的几率,更加有利于软件的开发、维护和升级。模块化的设计结构经常可以简化任务。<br />在面向对象中,算法与数据结构被看做是一个整体,称作类,现实世界中任何类的对象都具有一定的属性和操作,也总能用数据结构与算法两者合一地来描述,所以程序可以被这样定义:<br /

2010-06-28 16:57:00 500

原创 导致0XC0000005access violation 的几种代码

<br />例1:<br />int *p;<br />p=(int*)0X8000;<br />*p=0Xabcd;<br />这段代码会导致运行时错误,因为给指针分配了一个随机的地址,这是十分危险的,不管这个指针有没有被使用过这么做都是不允许的

2010-06-25 09:28:00 2476

转载 IP地址、子网掩码、网关的关系

IP地址、子网掩码、网关的关系?

2010-06-23 16:33:00 807

原创 算法的时间复杂度

<br />1、时间复杂度 <br /><br />(1)时间频度 <br />一个算法执行所耗费的时间,从理论上是不能算出来的,必须上机运行测试才能知道。但我们不可能也没有必要对每个算法都上机测试,只需知道哪个算法花费的时间多,哪个算法花费的时间少就可以了。并且一个算法花费的时间与算法中语句的执行次数成正比例,哪个算法中语句执行次数多,它花费时间就多。一个算法中的语句执行次数称为语句频度或时间频度。记为T(n)。 <br /><br />(2)时间复杂度 <br />在刚才提到的时间频度中,n称为问题的规

2010-06-19 16:11:00 769

原创 指针加减

<br /> double dArray[2] = {4, 8}, *p, *q;<br /> p = &dArray[0];<br /> q = p + 1;<br /> int n= q - p ; //n=1  指针加减,跟类型有关<br /> int m= (int)q - (int)p ;//m=8,指针的地址值进行加减,其实就是整数加减<br /> int k=(char*)q - (char*)p ;//k=8<br /> int j=(int*)q - (int*)p ;     //j=2

2010-06-19 14:38:00 1305

原创 几种进制数

<br />在汇编中:<br />N=34D(说明一下,你可能在某些数字的后边看到过加有一个字母,这个字母便是用来表示数制的,十进制数用D,二进制数用B,八进制数用O,十六进制数用H) <br />B:binary   二进制<br />O:octal     八进制<br />D:decimal 十进制<br />H:hex      十六进制

2010-06-19 14:19:00 857

转载 Android平台配置

<br />http://www.cbmland.com/post/910/deployment-andriod-develop-environment.html

2010-06-18 16:14:00 463

原创 x=x+1,x+=1,x++的效率问题?

<br />196:  x=x+1;<br />00401FB4   mov         eax,dword ptr [ebp-8]<br />00401FB7   add         eax,1<br />00401FBA   mov         dword ptr [ebp-8],eax<br />196:  x+=1;<br />00401FB4   mov         eax,dword ptr [ebp-8]<br />00401FB7   add       

2010-06-14 00:54:00 587 1

原创 数组指针与数组元素的指针

main(){  int a[5]={1,2,3,4,5};   int *ptr=(int *)(&a+1);   printf("%d,%d",*(a+1),*(ptr-1));}输出:2,5*(a+1)就是a[1],*(ptr-1)就是a[4],执行结果是2,5&a+1不是首地址+1,系统会认为加一个a数组的偏移,是偏移了一个数组的大小(本例是5个int)int *ptr=(int *)(&a+1); 则ptr实际是&(a[5]),也就是a+5原因如下:&a是数组指针,其类型为 int (*)[5];

2010-06-13 11:43:00 486

转载 求二进制数中1的个数

求二进制数中1的个数http://www.msra.cn/Articles/ArticleItem.aspx?Guid=7cfc244e-aaf5-4669-be0a-3a8f32409731#. 对于一个字节(8bit)的变量,求其二进制表示中“1”的个数,要求算法的执行效率尽可能地高。【解法一】 可以举一个八位的二进制例子来进行分析。对于二进制操作,我们知道,除以一个2,原来的数字将会减少一个0。如果除的过程中有余,那么就表示当前位置有一个1。 int Cou

2010-06-13 09:36:00 674

原创 i++与++i的区别

<br />再解析i++与++i的区别前我们先看两道题:<br /> <br />#define SQUARE(a)((a)*(a))<br />    int a=5;<br />    int b=SQUARE(a++);<br />    int c=5;<br />    int d=SQUARE(++c);   <br />答案是a=7,b=25,c=7,d=49,<br />其实从这个答案上我们就可以看出些眉目了,当a++作为参数的时候,其实先以a的原值(未加1之前的值)作为操作数进行运

2010-06-13 00:23:00 534

转载 c/c++试题大全

http://pengfei.zhmy.com/archives/2006/41955.shtml

2010-06-12 15:05:00 826

原创 0xCCCCCCCCC的内存不能访问的原因

在VC6下调试程序,可能会遇到诸如指令引用“0xcccccccc”,该内存不能为Read的报错究其原因,就debug版中的堆栈中的局部变量(包括指针)在明确初始化之前都用0x0cc进行初始化,因此,未初始化时候的指针是指向地址0x0cccccccc的,而这段地址一来是处于内核地址空间,一般的应用程序是无权访问的,上面的报错就是这样产生的。因此,一旦遇到上述报错,基本可以认定程序中出现了野指针。另外一方面cc对应着int 3调试中断,堆栈中的存放的局部数据一般情况下是只读的,当发生意外执行堆栈里面

2010-06-11 23:59:00 6580 2

转载 C++面试题大全(附参考答案)

<br />http://hi.baidu.com/tikuanyinok/blog/item/509da113e62ceed4f7039ee6.html<br /> <br />1.是不是一个父类写了一个virtual 函数,如果子类覆盖它的函数不加virtual ,也能实现多态?<br />virtual修饰符会被隐形继承的。private 也被集成,只事派生类没有访问权限而已。virtual可加可不加。子类的空间里有父类的所有变量(static除外)。同一个函数只存在一个实体(inline

2010-06-11 22:50:00 1695

原创 c++位操作指令

http://www.programbbs.com/doc/3012.htm一、传统的C方式位操作:1.基本操作:   使用一个unsigned int变量来作为位容器。2.操作符:|   按位或操作符:result=exp1|exp2;当exp1和exp2中对应位中至少有一个为1时,result中对应位为1,否则为0。&  按位与操作符::result=exp1&exp2;当exp1和exp2中对应位全为1时,result中对应位为1,否则为0。^  按位异或或操作符:result=exp1^exp2;当

2010-06-11 22:48:00 1041

转载 c++位操作指令

http://www.programbbs.com/doc/3012.htm一、传统的C方式位操作:1.基本操作:   使用一个unsigned int变量来作为位容器。2.操作符:|   按位或操作符:result=exp1|exp2;当exp1和exp2中对应位中至少有一个为1时,result中对应位为1,否则为0。&  按位与操作符::result=exp1&exp2;当exp1和exp2中对应位全为1时,result中对应位为1,否则为0。^  按位异或或操作符:result=exp1^exp2;当

2010-06-11 15:30:00 517

转载 学习STL map, STL set之数据结构基础

<br />STL map和set的使用虽不复杂,但也有一些不易理解的地方,如:<br /><br /> <br />或许有得人能回答出来大概原因,但要彻底明白,还需要了解STL的底层数据结构。<br />C++ STL 之所以得到广泛的赞誉,也被很多人使用,不只是提供了像vector, string, list等方便的容器,更重要的是STL封装了许多复杂的数据结构算法和大量常用数据结构操作。vector封装数组,list封装了链表,map和set封装了二叉树等,在封装这些数据结构的时候,STL按照程序员的

2010-06-10 12:44:00 530

转载 经典面试题

<br />1. 以下三条输出语句分别输出什么?<br />char str1[] = "abc";<br />char str2[] = "abc";<br />const char str3[] = "abc"; <br />const char str4[] = "abc"; <br />const char* str5 = "abc";<br />const char* str6 = "abc";<br />cout << boolalpha << ( str1==str2 ) << endl; /

2010-06-09 16:53:00 492

转载 面试题

<br />1.介绍一下STL,详细说明STL如何实现vector。<br />Answer:<br />STL (标准模版库,Standard Template Library.它由容器算法迭代器组成。<br />STL有以下的一些优点:<br />可以方便容易地实现搜索数据或对数据排序等一系列的算法;<br />调试程序时更加安全和方便;<br />即使是人们用STL在UNIX平台下写的代码你也可以很容易地理解(因为STL是跨平台的)。<br />vector实质上就是一个动态数组,会根据数据的增加,动

2010-06-09 16:07:00 340

转载 release 和debug 区别

<br />Debug版本包括调试信息,所以要比Release版本大很多(可能大数百K至数M)。至于是否需要DLL支持,主要看你采用的编译选项。如果是基于ATL的,则Debug和Release版本对DLL的要求差不多。如果采用的编译选项为使用MFC动态库,则需要MFC42D.DLL等库支持,而Release版本需要MFC42.DLL支持。Release   Build不对源代码进行调试,不考虑MFC的诊断宏,使用的是MFC   Release库,编译十对应用程序的速度进行优化,而Debug   Build则

2010-06-09 16:04:00 446

转载 链接库分类

<br />1.链接库分两种,一种是静态链接库lib,动态链接库DLL<br />2.动态链接库DLL分两种,一种是动态链接库的静态连接通过Lib编译到exe里面,exe一旦启动就把<br />dll load到内存里面了,不管用不用就进来内存了。另外一种是动态链接库通过LoadLibrary来获取入口<br />这样的好处是节省在不需要用改DLL的时候,不需要占用内存。

2010-06-02 00:08:00 514

转载 DLL详解

DLL文件(Dynamic Linkable Library 即动态链接库文件),是一种不能单独运行的文件,它允许程序共享执行特殊任务所必需的代码和其他资源比较大的应用程序都由很多模块组成,这些模块分别完成相对独立的功能,它们彼此协作来完成整个软件系统的工作。可能存在一些模块的功能较为通用,在构造其它软件系统时仍会被使用。在构造软件系统时,如果将所有模块的源代码都静态编译到整个应用程序 EXE 文件中,会产生一些问题:一个缺点是增加了应用程序的大小,它会占用更多的磁盘空间,程序运行时也会

2010-06-02 00:05:00 446

原创 dll头文件宏的作用

标准的DLL头文件中都会有这么一段宏#ifdef _EXPORTING#define API_DECLSPEC __declspec(dllexport)#else#define API_DECLSPEC __declspec(dllimport)#endif然后用API_DECLSPEC 修饰声明的函数例如首先是在DllDemo.h声明:C/C++ code#ifdef _EXPORTING#define API_DECLSPEC __declspec(dllexpo

2010-06-01 23:59:00 1472

原创 内联函数方面遇到的问题

<br />现象:在一个项目中我们的程序在Debug下,运行良好,但在Release版本下程序退出时出现错误,代码跟踪程序已经执行完毕,但在一行汇编代码中排抛出异常<br />原因:经多方努力查找,发现是一处静态内联函数导致(与静态无关),因为Debug下默认的对内联函数采取的是Disable*设置,但在release下,根据优化选项不同对内联函数采取的策略也不相同,例如:Maximize下,对内联函数的设置为only _inline(我们项目中就是选的这个),若一个函数被声明成内联函数,编译器即使遇到该函

2010-06-01 17:44:00 810

转载 内联函数(inline)机制与陷阱

<br />1.内联相对于宏的优点<br /><br />2.为什么“inline”只是程序员对编译器的建议(而非强制命令)<br /><br />3.内联失败的陷阱<br /><br />在C、C++中函数调用需要少量开销。有时候这少量开销积少成多,对程序性能造成影响。有时候函数本身很简单,函数调用的开销比执行函数内容本身的开销还大。C程序员一定知道可以采用宏(Macro)机制来改善上述情况。但是宏基本上是在预编译阶段做文本替换,因此它有以下缺陷:<br /><br />1.它无法进行类型检查;<br /

2010-06-01 17:26:00 838

转载 内联函数1

<br />C++代码优化方法总结  优化是一个非常大的主题,本文并不是去深入探讨性能分析理论,算法的效率,况且我也没有这个能力。我只是想把一些可以简单的应用到你的C++代码中的优化技术总结在这里,这样,当你遇到几种不同的编程策略的时候,就可以对每种策略的性能进行一个大概的估计。这也是本文的目的之所在。<br /><br />目录:<br />一. 优化之前<br />二. 声明的放置<br />三. 内联函数<br />四. 优化你的内存使用<br />五. 速度优化<br />六. 最后的求助<br /

2010-06-01 17:25:00 1025

原创 c++优化

<br />C++代码优化方法总结  优化是一个非常大的主题,本文并不是去深入探讨性能分析理论,算法的效率,况且我也没有这个能力。我只是想把一些可以简单的应用到你的C++代码中的优化技术总结在这里,这样,当你遇到几种不同的编程策略的时候,就可以对每种策略的性能进行一个大概的估计。这也是本文的目的之所在。<br /><br />目录:<br />一. 优化之前<br />二. 声明的放置<br />三. 内联函数<br />四. 优化你的内存使用<br />五. 速度优化<br />六. 最后的求助<br /

2010-06-01 14:41:00 1191 2

空空如也

空空如也

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

TA关注的人

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