一个函数可以返回一个整型值、字符值、实型值等,也可以返回指针型的数据,即地址,返回的是指针类型。返回指针值的函数的一般定义形式为;数据类型 *函数名(参数列表)例如: int *a(int x, int y);a作为函数名,调用它之后能得到一个指向整型数据的指针(地址)。()优先级高于*,因此a先与...
分类:
编程语言 时间:
2014-07-21 10:01:23
阅读次数:
457
特殊工具与技术
--运行时类型识别
引:
通过下面两个操作符提供RTTI:
1.typeid操作符,返回指针或引用所指对象的实际类型。
2.dynamic_cast操作符,将基类类型的指针或引用安全地转换为派生类型的指针或引用。
对于带虚函数的类,在运行时执行RTTI操作符,但对于其他类型,在编译时计算RTTI操作符。
当具有基类的引用或指针,但需要执行不是基类组成部分的派生类操作的时候,需要动态的强制类型转换。通常,从基类指针获得派生类行为最好的方法是通过虚...
分类:
编程语言 时间:
2014-07-19 11:45:04
阅读次数:
258
目录指针前奏指针变量的定义指针实例指针探究指针与数组指针与字符串返回指针的函数指向函数的指针返回顶部一、指针前奏1.指针的重要性指针是C语言中非常重要的数据类型,如果你说C语言中除了指针,其他你都学得很好,那你干脆说没学过C语言。2.小需求1> voidchange(intn)函数调用完毕后,改变实...
分类:
其他好文 时间:
2014-07-18 15:07:11
阅读次数:
176
现在我们讨论下使用返回指针的函数的潜在错误。假设有一个函数返回一个指向某个MyClass类型的对象的指针。
MyClass* MyFactoryClass::Create(const Inputs& inputs);
这个函数的一个非常显而易见的问题是,它的调用者是否负责删除这个对象?或者说这个指针所指向的MyClass类的实例是MyFactoryClass所拥有的实例?这个问题显然应该在声明...
分类:
其他好文 时间:
2014-07-16 13:26:51
阅读次数:
192
Splay Tree的插入操作,搜索操作,和删除操作都实现了,那么就能够使用来解题了。指针的删除操作的处理还是那么难的,非常多坎须要避开.同一个坎还是坑了我好多次,就是指针传递的问题,什么时候须要改动指针本身的值,就必须返回指针或者传递指针的指针,或者传递指针的的实參。这里的删除操作就是须要改变传递...
分类:
其他好文 时间:
2014-07-15 00:09:13
阅读次数:
233
前面的话:我们都知道,当我们调用new来分配内存的时候,首先会分配内存,其次调用构造函数,最后返回指针。对于第二步失败,我们后面也将介绍,第二步失败时会调用对应的delete来释放内存。本文主要探讨第一步失败的情况。(一)内存分配失败的时候一般会怎么处理?(1)c中,malloc如果失败会返回空指针...
分类:
编程语言 时间:
2014-06-21 18:21:39
阅读次数:
196
Splay Tree的插入操作,搜索操作,和删除操作都实现了,那么就可以使用来解题了。
指针的删除操作的处理还是那么难的,很多坎需要避开.
同一个坎还是坑了我好多次,就是指针传递的问题,什么时候需要修改指针本身的值,就必须返回指针或者传递指针的指针,或者传递指针的的实参。
这里的删除操作就是需要改变传递到函数的指针本身的,所以我这里使用了返回指针操作。
还有删除树的问题,之前的代码没做删除...
分类:
其他好文 时间:
2014-06-01 10:30:52
阅读次数:
339
编程题:返回指针值的函数,求两个数中较大的数。#include<stdio.h>int*max(int*x,int*y){int*q;if(*x>*y)q=x;elseq=y;returnq;}voidmain(){inta,b,*p;scanf("%d,%d",&a,&b);p=max(&a,&b);printf("%d,%d,maxis%d\n",a,b,*p);}
分类:
其他好文 时间:
2014-05-21 00:03:01
阅读次数:
348
RTTI(Run-Time Type
Information,通过运行时类型信息)程序能够使用基类的指针或引用来检查这些指针或引用所指的对象的实际派生类型.RTTI提供了以下两个非常有用的操作符:(1)typeid操作符,返回指针和引用所指的实际类型。(2)dynamic_cast操作符,将基类类型...
分类:
编程语言 时间:
2014-05-19 15:51:05
阅读次数:
312
1、目录操作有 mkdir(constchar *pathname,mode_t mode)
创建目录,成功则返回0,若出错则返回-1
int rmdir(const char *pathname)
rmdir可以删除一个空目录,成功则返回0,若出错返回-1
DIR *opendir(const *pathname)
成功则返回指针,若出错则返回NULL...
分类:
其他好文 时间:
2014-05-13 08:06:02
阅读次数:
298