c++
libin1987
这个作者很懒,什么都没留下…
展开
-
常量指针与指针常量
学c++的时候,这两个概念一直很混淆,决定今天把它按自己的理解记下来。 常量指针:例如 int *const p 因为指针保存的是地址值 所以 将指针声明为常量的话 就不能对指针进行加减了,如p++、p--等都是错误的 但是可以改变指针所指向 的值。 指向常量的指针。例如 const int *p 它表示指针p...原创 2010-10-14 22:59:39 · 98 阅读 · 0 评论 -
深复制与浅复制
2者主要区别:是否为成员变量分配新内存空间 复制构造函数有2种:深复制与浅复制 当将一个对象A复制给另一个对象B时,系统会调用复制构造函数 编译器默认的复制构造函数是浅拷贝,它将原对象的每一个成员变量复制到新对象的成员变量中去。因而最后两个对象的变量均指向相同的数据成员的内存地址。 当数据成员中没有指针时,浅拷贝是可行的。 但当数据成员中有指针时,如果采用简单的浅拷贝,则两类中的两个指针...2010-10-19 16:44:01 · 78 阅读 · 0 评论 -
堆与栈的区别(转)
对于c/c++程序中的内存分配方式,这篇文章讲的比较清楚,便copy过来了。 [color=darkred]一、预备知识—程序的内存分配[/color] 一个由c/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack)—> 由编译器自动分配释放,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。 2、堆区(heap)—> 一般由程序员分配释放,若程序员不...原创 2010-11-29 16:06:52 · 80 阅读 · 0 评论