编程语言
zt_706
这个作者很懒,什么都没留下…
展开
-
*p++,*++p,++*p
*p++,*++p,++*p转载自http://blog.csdn.net/fooolboy/archive/2009/04/13/4070715.aspx#include int main(){ char s[] = "012345678", *p = s; cout p = s; cout cout cout cout cout转载 2013-08-02 18:16:06 · 651 阅读 · 0 评论 -
C语言 float和double型数据在内存中的存储方式
#include /************************************************************************//* 3_tanxinsuanfa 找零钱 *//************************************************原创 2012-07-29 08:39:05 · 2616 阅读 · 0 评论 -
在C++中,为什么前自增操作生成左值,后自增操作生成右值?为什么有这样的区别? .
左值意味着这个值是内存里一个可访问的地址,右值表示一个数据(可能没有确切的地址)比如说 ++i 先将 i 所存放的数加一,再返回i,即&(++i)是有意义的,可以作为一个左值,而 i++ 将 i的值加一,并且返回没有增加前的i,(i++先保存i原来的 值 ,再将i的值加一, 然后返回未加一之前的 值)这个时候这个(i++)是一个数字,没有固定的存放地址,所以只能作为右值了.所以:(转载 2013-08-03 22:56:46 · 1392 阅读 · 0 评论 -
C++堆、栈、自由存储区、全局/静态存储区和常量存储区 .
一个由c/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。 2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵。 3、全局区(静态区)(static)—,全局变量和静态变量转载 2013-08-03 17:31:32 · 609 阅读 · 0 评论 -
C++中类的大小问题
以下的讨论都是在不用#pragma pack( num )下的结果,num表示以多少个字节对齐。初学者在学习面向对象的程序设计语言时,或多或少的都些疑问,我们写的代码与最终生编译成的代码却 大相径庭,我们并不知道编译器在后台做了什么工作.这些都是由于我们仅停留在语言层的原因,所谓语言层就是教会我们一些基本的语法法则,但不会告诉我们为什么这么做?今天和大家谈的一点感悟就是我在学习编程过程中的一点转载 2013-10-06 12:14:54 · 571 阅读 · 0 评论 -
数组名,数组首地址,a,&a,&a[0]
(1)指针数组: 是数组,但数组中的每个元素都是指针int *p[5];//如p[2]是指针,可*p[ 2]=3;(2)指向数组的指针: 是个指针,但它指向的是一个数组int a[5];int (*p)[5];//与前一行比较,*p相当于a,即p=&a;就像:int m;int *pm;//*pm就相当于m.pm=&m;p= &a;//可与前一行合并为int (*p)[5]=&转载 2013-10-12 21:44:45 · 750 阅读 · 0 评论 -
C++ 中的throw和throw new
今天看组里面的老测试代码,很多地方用的是throw new std::exception(),没多想就抄了过来,然后在client端用catch(const std::exception& e)的方式捕获异常。可是在测试案例中触发抛出异常之后,client的catch总是无法捕获,最终程序以未捕获异常退出,十分奇怪。去stackoverflow上搜了下相关话题,原来throw new except转载 2013-10-15 13:16:49 · 2783 阅读 · 0 评论 -
C++ assert
assert宏的原型定义在中,其作用是如果它的条件返回错误,则终止程序执行,原型定义:#include assert.h>void assert( int expression ); assert的作用是现计算表达式 expression ,如果其值为假(即为0),那么它先向stderr打印一条出错信息,然后通过调用 abort 来终止程序运行。请看下面的程序清单badpt转载 2013-10-17 09:44:16 · 535 阅读 · 0 评论 -
全局变量、局部变量、静态全局变量、静态局部变量的区别
C++变量根据定义位置的不同,具有不同的作用域,作用域可分为6种:全局作用域,局部作用域,语句作用域,类作用域,命名作用域和文件作用域。从作用域看:全局变量具有全局作用域。全局变量只需在一个源文件中定义,就可以作用于所有的源文件。当然,其他不包括全局变量定义的源文件需要用extern关键字再次声明这个全局变量。静态局部变量具有局部作用域。它只被初始化一次,自从第一次初始化直到程序与你新转载 2013-11-29 20:15:31 · 628 阅读 · 0 评论