从概念上讲。指针从本质上讲就是存放变量地址的一个变量,在逻辑上是独立的,它可以被改变,包括其所指向的地址的改变和其指向的地址中所存放的数据的改变。
而引用是一个别名,它在逻辑上不是独立的,它的存在具有依附性,所以引用必须在一开始就被初始化,而且其引用的对象在其整个生命周期中是不能被改变的(自始至.....
分类:
编程语言 时间:
2014-05-15 18:10:09
阅读次数:
314
1,指针作为函数参数,指针可以指向内存中任意一个数据,通过间接引用能够在函数内修改函数外甚至系统中的数据;为了避免指针作为函数参数导致数据被意外修改,我们可以使用const来保护指针所指向的数据;2,指针作为函数返回值,同别的数据类型int,float一样,指针也能够作为函数的一种返回值类型,把返回...
分类:
其他好文 时间:
2014-05-15 17:36:11
阅读次数:
337
我们先来看一张之前整理过的一张二叉树的链式存储结构
1、每个数据域,都有2个指针域,分别指向该节点的左孩子、右孩子,但是每个节点前驱、后继,要知道的话需要遍历整棵树,这在时间上耗费很大。
2、另外,在叶子节点中,我们可以看到如图,每个节点都会浪费2块存储空间,N个节点的二叉树,2N个指针域,连接线为2N-1,那么会有2N-(N-1) = N+1个指针域浪费掉。
为了优化以上2...
分类:
其他好文 时间:
2014-05-15 13:30:19
阅读次数:
283
面向对象编程--句柄类与继承引言: C++中面向对象编程的一个颇具讽刺意味的地方是:不能使用对象支持面向对象编程,相反,必须使用指针或引用。void get_prices(Item_base object,
Item_base *pointer,
Item_base &reference)
{
//需要根据指针或引用实际所绑定...
分类:
编程语言 时间:
2014-05-15 08:19:33
阅读次数:
359
节点形态:
存储结构:
每个节点都包含一个标志域,如果为0(即原子),那么仅含一个值域,如果是1(列表),那么说明该节点包含两个指针域。
需要注意的是求广义表长度的操作,其实计算的是根节点及其兄弟的个数,比如图2中广义表的长度为2,图3中广义表的长度为4。
深度的定义方式是递归式的,定义空表深度为1,原子深度为0,广义表的深度...
分类:
其他好文 时间:
2014-05-15 07:57:32
阅读次数:
331
面向对象编程--句柄类与继承[续]三、句柄的使用 使用Sales_item对象可以更容易地编写书店应用程序。代码将不必管理Item_base对象的指针,但仍然可以获得通过Sales_item对象进行的调用的虚行为。1、比较两个Sales_item对象 在编写函数计算销售总数之前,需要定义比较Sales_item对象的方法。要用Sales_item作为关联容器的关键字,必须能够比较它们。关联容器默认...
分类:
编程语言 时间:
2014-05-15 07:55:23
阅读次数:
255
int *p;//(int
*)修饰的是内存地址,也就是32位二进制无符号整数//*p等价于int类型数据//p
一个内存地址//*根据内存地址取出内容//&根据变量取出地址//任何类型的指针都占4个字节int a,
b; scanf("%d%d",&a,&b);//接收输入值 printf("%d...
分类:
编程语言 时间:
2014-05-15 07:46:49
阅读次数:
275
指向const对象的指针,例如:const int
*pival;pival是以个指向int类型const对象的指针,const限定pival指针所指向的对象类型,而并非pival本身,也就是说,pival并不是const,在定义时不需要对它进行初始化,如果需要,允许给pival重新赋值,使其指向另...
分类:
其他好文 时间:
2014-05-15 07:44:06
阅读次数:
197