关于C++指针的

我是初学者,我想问下反回指针的函数和指向函数的指针有什么区别?最好能举例说明。

返回指针的函数是返回的是一个指针,即一个地址,但是他是函数。
指向函数的指针也是地址,但是他是一个指针。
比如你定义一个
char*fun()
{
char *p=new char();
return p;
}

这个函数就是一个返回一个char型的指针。他为什么要返回一个指针呢?可能是因为程序需要模块化,这个函数的功能就是实现对一个数据的初始化,然后后面的程序需要用到该数据,所以要让这个函数实现初始化之后把这个数据的地址给传递回去,为什么要用指针呢,因为指针的的速度快,程序运行效率高,而且比如我举例的程序,它开辟的是堆里面的内存,在做大型程序的时候尽量要用堆里面的内存,这样可以避免数据溢出,也就是栈内存的溢出,你直接使用char c是在栈里面开辟的内存,但是电脑分配给栈的内存空间非常小,堆的内存空间是很大的,所以避免数据溢出可以防止黑客从栈溢出这个漏洞进行进攻。
指向函数的指针:他就指向一个函数,使用指针会提高程序的运行效率,因为C++在运行数据是是:int a ;他先找到a 的地址,然后再去改变他的值,而指针则少去了去找a 的地址的工作,所以运行效率高。指向函数的指针跟指向数据的指针是一样的。不用想得太复杂。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2009-05-19
没啥区别
第2个回答  2009-05-19
区别在於:
指针的用途:

作为返回值的:
如:
int *GetMemory(int n)
{
int *p = new int[n];
return p;
}

通常它只是用於传回一个地址

而函数指针,是用来指向函数
如:

typedef int (*fun)(int n);
int function(int n)
{
return n;
}

fun f = function;

明白了吗?
第3个回答  2009-05-19
返回指针的函数:当函数被调用时,返回该指针所指向的变量地址。

指向函数的指针:当该指针被调用时,执行它所指向的函数。
相似回答