摘要:
1. 函数使用概况 assert宏能测试传入表达式的真假值,当表达式为真(true),则不会有任何反应;当表达式为假(false),则函数将输出错误信息,并中断程序的执行。 assert宏可以用来判断某表达式的真假值,并在程序执行的过程中实时响应错误信息,因此在程序开发的过程中,常常被用来作程序纠错的工具,当程序开发完成,只需要在加载头文件前面,利用#define指令定义NDEBUG这个关键字... 阅读全文
摘要:
void的含义 void即“无类型”,void *则为“无类型指针”,可以指向任何数据类型。 void指针使用规范 ①void指针可以指向任意类型的数据,亦即可用任意数据类型的指针对void指针赋值。例如: int * pint; void *pvoi... 阅读全文
摘要:
1. 一个经典实例 1 /* 2 用法:const_cast (expression) 3 该运算符用来修改类型的const或volatile属性。除了const 或volatile修饰之外, type_id和expression的类型是一样的。 4 一、常量指针被转化成非常量指针,并且仍然指向原来的对象; 5 二、常量引用被转换成非常量引用,并且仍然指向原来的对象; 6 三、常量对象被转换成非常量对象。 7 type_id 必须为指针或引用 8 */ 9 class B10 {11 public:12 int m_iNum;13 B():m_iNum(5... 阅读全文
摘要:
1. free store VS heapfree store (自由存储区)和 heap (堆),在C/C++中经常会遇到。他们是否有区别呢?偶最早发现这两个概念性问题是在《Exceptional C++》一书中。其中提到C++中使用new分配所得的内存是分配在 freestore 上,而C 风格的内存分配 malloc 分配所得的内存是在 heap 上。额。这个有什么区别呢?通过在 Google 的搜索,所得的中文资料相当少,英文的倒是不少,而且不少还有争议性质。不过部分观点是已经达成共识的。这里,作为翻译,略微加上一点自己的思想,写在这里——首先呢,有必要知道malloc内存分配和new 阅读全文
摘要:
阅读全文
摘要:
本文转自:http://blog.csdn.net/wtong/article/details/20678 我真的没有写错,我说的就是扮虎吃猪,不是我们经常见到的扮猪吃虎。不过我还是先讲讲大家都知道的扮猪吃虎。 什么叫作“扮猪吃虎”呢?即是说猎人要捉老虎,在无法力擒的时候,就装扮成一只猪猡,学成猪叫,把老虎引出来,待走近时,然后出其不意,猝然向它袭击。这突击结果,虎纵不死... 阅读全文
摘要:
根据《C++ Primier》P39及其习题的解答,综合总结左值右值的概念如下:(1)左值:左值就是变量的地址,或者是一个代表“对象在内存中的位置”的表达式。左值可以出现在赋值语句的左边或者右边;(2)右值:右值就是变量的值,右值只能出现在赋值语句的右边,不能出现在赋值语句的左边,只可在左边。对于一个变量名来说,其出现在赋值语句的左边,就是一个左值;而出现在赋值运算符右边的变量名或者字面常量就是一个右值。例如: val1 = val2/15;这里的val1就是一个左值,而val2和15就是右值。1. C++左值与右值概念变量和文字常量都有存储区,并且有相关的类型,区别在于变量是可寻址的;对于每 阅读全文
摘要:
作者:gnuhpc 出处:http://www.cnblogs.com/gnuhpc/关于默认构造函数的一些内容补充:1.C++规定,每个类必须有默认的构造函数,没有构造函数就不能创建对象。2.若没有提供任何构造函数,那么c++提供自动提供一个默认的构造函数,该默认构造函数是一个没有参数的构造函数,它仅仅负责创建对象而不做任何赋值操作。3.只要类中提供了任意一个构造函数,那么c++就不自动提供默认构造函数。4.类对象的定义和变量的定义类似,使用默认构造函数创建对象的时候,如果创建的是静态或者是全局对象,则对象的位模式全部为0,否则将会是随机的。1.什么是默认构造函数?一个函数是默认构造函数当且 阅读全文
摘要:
《C++Primer》第四版 2.3.5节中这么说到:①变量定义:用于为变量分配存储空间,还可为变量指定初始值。程序中,变量有且仅有一个定义。②变量声明:用于向程序表明变量的类型和名字。③定义也是声明:当定义变量时我们声明了它的类型和名字。④extern关键字:通过使用extern关键字声明变量名而不定义它。1.定义也是声明,分配了存储空间;而extern声明不是定义,即不分配存储空间。extern告诉编译器变量在其他地方定义了。例如:extern int i; //声明,不是定义, int i; //声明,也是定义也可以这么理解:变量的“声明”有两种情况:1、一种是需要建立存储空间的。例如: 阅读全文
摘要:
之前看帖子,发现许多时候基本上大家都把求模和求余混为一谈了。但实际上二者的概念是有区别的 1. 求余 在C语言中,求余对应的操作符是%,且a%b求余的最后结果总是与a符号相同,最后的数值为|a|%|b|。 故而 12%256=12; -12%256=-12; -12%-256 = –12; 12%-256 =12; 2. 求... 阅读全文