C/C++
文章平均质量分 79
风吹无迹雨落无痕
Follow my heart!
展开
-
C++虚函数及虚函数表解析(二)
http://blog.sina.com.cn/s/blog_60e96a410100lirk.html C++中的成员和函数,有静态和非静态。1、非静态数据成员:放在每一个对象体内,作为对象专有的数据成员。2、静态数据成员:被提取出来放在程序的静态数据区内,为该类所有对象共享,因此只存在一份。(引申下,一个类模板中的静态数据成员实例化成模板类之后有几份?思考下。)3、静态和非静态成员函数:最原创 2015-04-26 17:27:36 · 385 阅读 · 0 评论 -
C++虚函数及虚函数表解析
作者:独酌逸醉http://www.keepsimply.org/2012/07/11/cpp-vtable/ 声明:本文内容由自互联网资源(见参考资料)、个人的一些 C++ 学习感悟、个人实践整理而成。文章仅以技术学习和交流为目的。如果您发现了文中的错误,或者您有的不同的见解,可以给我留言或者给我发邮件,我们共同探讨。如果您觉得我的文章侵犯到您的权益,请联系我(chinajiezhang@gm原创 2015-04-26 17:27:32 · 377 阅读 · 0 评论 -
C/C++程序员应聘常见面试题深入剖析
就要进入职场了,很好的试题,自己学习了,也分享给所有的C/C++毕业生吧! C/C++程序员应聘常见面试题深入剖析http://bbs.2cto.com/read.php?tid=263669 1.引言本文的写作目的并不在于提供C/C++程序员求职面试指导,而旨在从技术上分析面试题的内涵。文中的大多数面试题来自各大论坛,部分试题解答也参考了网友的意见。许多面试题看似简单,却需要深厚的基本功才能原创 2015-04-26 17:27:10 · 390 阅读 · 0 评论 -
编译器处理相关
一.预处理器-编译器-汇编器-链接器预处理器会处理相关的预处理指令,一般是以"#"开头的指令。如:#include "xx.h" #define等。编译器把对应的*.cpp翻译成*.s文件(汇编语言)。汇编器则处理*.s生成对应的*.o文件(obj目标文件)最后链接器把所有的*.o文件链接成一个可执行文件(?.exe) 1.部件:首先要知道部件(可以暂且狭义地理解为一个类)一般分为头文件(我喜欢原创 2015-04-26 17:27:00 · 324 阅读 · 0 评论 -
内存访问错误
大内高手—常见内存错误 随着诸如代码重构和单元测试等方法引入实践,调试技能渐渐弱化了,甚至有人主张废除调试器。这是有道理的,原因在于调试的代价往往太大了,特别是调试系统集成之后的BUG,一个BUG花了几天甚至数周时间并非罕见。 而这些难以定位的BUG基本上可以归为两类:内存错误和并发问题。而又以内存错误最为普遍,即使是久经沙场的老手,也有时也难免落入陷阱。前事不忘,后世之师,了解这原创 2015-04-26 17:26:26 · 3713 阅读 · 0 评论 -
【引用】C/C++中指针和引用之相关问题研究
一、基本知识指针和引用的声明方式:声明指针: char* pc;声明引用: char c = 'A' char& rc = c; 它们的区别:①从现象上看,指针在运行时可以改变其所指向的值,而引用一旦和某个对象绑定后就不再改变。这句话可以理解为:指针可以被重新赋值以指向另一个不同的对象。但是引用则总是指向在初始化时被指定的对象,以后不能改变,但是指定的对象其内容转载 2015-04-26 17:21:35 · 501 阅读 · 0 评论 -
二维空间的申请和释放(转)
转载自http://hi.baidu.com/suntopdang/blog/item/ec93178abf65e1779f2fb434.html (1)已知第二维 Code-1char (*a)[N];//指向数组的指针a = (char (*)[N])malloc(sizeof(char *) * m);printf("%d\n", sizeof(a));//4,指针printf("%d原创 2015-04-26 17:27:21 · 362 阅读 · 0 评论 -
VC中结构体内存分配问题透析(sizeof)
注意: (1)在VC下,下面各类型占字节数为:char->unsigned int ->1; short int ->2; int ->unsigned int ->4; long ->float->4; double ->long double ->8 //vc下是我回来进行了测试的 (2)在TC下,下面各类型占字节数为:char->unsigned int ->1; s原创 2015-04-26 17:27:04 · 435 阅读 · 0 评论 -
MFC程序的启动与死亡顺序
MFC程序的启动与死亡顺序 1、创建Application object对象theApp程序一开始生产一个(且只有一个)Application object对象theApp,也即一个CWinApp对象,这个全局对象一产生,便执行其构造函数,因为并没有定义CMyWinApp构造函数,所以即执行CWinApp类的构造函数。该函数定义于APPCORE.CPP第75行,你可以自己搜出来啃一啃,因此,CW原创 2015-04-26 17:28:34 · 603 阅读 · 0 评论 -
数组与指针小结
http://www.cnblogs.com/krisdy/archive/2010/06/10/1755631.html 数组与指针的问题真的老生长谈了啊!都不想说了! char str[10]; char*pStr = str; sizeof(str); //结果为10 sizeof(pStr); //结果为4 于是我们可以得出结论: (1)数组名不是指针;原创 2015-04-26 17:27:39 · 427 阅读 · 0 评论 -
C++中的内存管理(new、delete、内存泄漏)
C++中的内存管理(new、delete、内存泄漏) 1. 使用new动态分配内存:若没有足够内存,则new返回0(空值指针null pointer);2. 不要使用delete释放不是new分配的内存,delete释放指针指向的内存,但不会删除指针本身;3、对空值指针应用delete是安全的;4、创建数组时的静态联编与动态联编:数组声名int a[10], 静态联编,数组的长度在编译原创 2015-04-26 17:26:57 · 825 阅读 · 0 评论 -
C语言中的输入输出函数总结
putchar ():把变量中的一个字符常量输出到显示器屏幕上;getchar ();从键盘上输入一个字符常量,此常量就是该函数的值;printf ();把键盘中的各类数据,加以格式控制输出到显示器屏幕上;scanf ();从键盘上输入各类数据,并存放到程序变量中;puts ():把数组变量中的一个字符串常量输出到显示器屏幕上;gets ():从键盘上输入一个字符串常量并放到程序的原创 2015-04-26 17:26:48 · 1192 阅读 · 0 评论 -
Static用法总结
一、c程序存储空间布局 C程序一直由下列部分组成: 1)正文段——CPU执行的机器指令部分;一个程序只有一个副本;只读,防止程序由于意外事故而修改自身指令; 2)初始化数据段(数据段)——在程序中所有赋了初值的全局变量,存放在这里。 3)非初始化数据段(bss段)——在程序中没有初始化的全局变量;内核将此段初始化为0。 4)栈——增长方向:自顶向下增长;自动变量以原创 2015-04-26 17:26:45 · 1278 阅读 · 0 评论 -
realloc重分配内存详解
最近在写source code时需要在数组的buffer小时重新申请一块buffer,故找了一些资料,乖乖,竟然原指针还可以“漂移”。。。。。。 realloc原型:extern void *realloc(void *mem_address, unsigned int newsize);用法:#include 有些编译器需要#include 功能:改变mem_address所指内存区域的大原创 2015-04-26 17:26:41 · 2100 阅读 · 1 评论 -
字符集问题处理
C++:error C2664: “XXX”: 不能将参数1从“CString”转换为“const char *”(这一类问题基本上都是字符集格式不同而引起的) 在VC6中,默认使用MBCS编码,即多字节字符,实际就是支持大于0x80的ASCII码。这样,一个中文字可以表示为2个字节,GB2312就是这样表示的。VC6的默认安装是不带UNICODE库的,要在VC6中写UNICODE程序,必须安装原创 2015-04-26 17:28:30 · 423 阅读 · 0 评论 -
关于C语言中return的一些总结
return是C++预定义的语句,它提供了种植函数执行的一种放大。当return语句提供了一个值时,这个值就成为函数的返回值.说到return,有必要提及主函数的定义,下面是从网络上找到的资料,好好消化吧,对了解主函数中返回值的理解有很大的帮助.很多人甚至市面上的一些书籍,都使用了void main( ) ,其实这是错误的。C/C++ 中从来没有定义过void main( ) 。C++ 之父 Bj原创 2015-04-26 17:26:53 · 3007 阅读 · 1 评论