99问答网
所有问题
关于C++指针的
我是初学者,我想问下反回指针的函数和指向函数的指针有什么区别?最好能举例说明。
举报该问题
推荐答案 2009-05-19
返回指针的函数是返回的是一个指针,即一个地址,但是他是函数。
指向函数的指针也是地址,但是他是一个指针。
比如你定义一个
char*fun()
{
char *p=new char();
return p;
}
这个函数就是一个返回一个char型的指针。他为什么要返回一个指针呢?可能是因为程序需要模块化,这个函数的功能就是实现对一个数据的初始化,然后后面的程序需要用到该数据,所以要让这个函数实现初始化之后把这个数据的地址给传递回去,为什么要用指针呢,因为指针的的速度快,程序运行效率高,而且比如我举例的程序,它开辟的是堆里面的内存,在做大型程序的时候尽量要用堆里面的内存,这样可以避免数据溢出,也就是栈内存的溢出,你直接使用char c是在栈里面开辟的内存,但是电脑分配给栈的内存空间非常小,堆的内存空间是很大的,所以避免数据溢出可以防止黑客从栈溢出这个漏洞进行进攻。
指向函数的指针:他就指向一个函数,使用指针会提高程序的运行效率,因为C++在运行数据是是:int a ;他先找到a 的地址,然后再去改变他的值,而指针则少去了去找a 的地址的工作,所以运行效率高。指向函数的指针跟指向数据的指针是一样的。不用想得太复杂。
温馨提示:答案为网友推荐,仅供参考
当前网址:
http://99.wendadaohang.com/zd/jXjWXtXv.html
其他回答
第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
返回指针的函数:当函数被调用时,返回该指针所指向的变量地址。
指向函数的指针:当该指针被调用时,执行它所指向的函数。
相似回答
c/
c++
中的
指针的
应用及注意问题
答:
一、我们先来回忆一下
指针的
概念吧,方便下面的介绍指针是存放地址值的变量或者常量。例如:int a=1;a就表示指针常量(“”表示取地址运算符,也即引用)。int *b,b表示的是指针变量(注意,是b表示指针变量而不是*b),*表示要说明的是指针变量。大家注意int *b[2]和int(*b)[2]是不同的...
(
C++
)
关于指针
答:
指针
(地址)在内存中的编号叫地址,*指针表地址里存的数据如:A=99;&a=2000;p=a;这的指针(地址)编号是2000 找到地址2000 p存值为99;P的属性:类型、名、大小(2字节)。可称a的指针是2000。指针p的地址是2000。2> 指针变量:用来专存放地址的变量叫指针变量。3> 常量指针:必需有一个地...
以下
关于C
C++
语言
指针
变量叙述中,正确是___。
答:
【答案】:A 本题考查程序语言基础知识。变量是内存单元抽象,用于在程序中表示数据。当变量存储是内存单元地址时,称为
指针
变量,或者说指针变量指向了另一个变量。指针变量可以定义在函数或复合语句内,也可以定义在所有函数之外,即可以是全局变量,也可以是局部变量。需要区分指针变量与指针所指向变量,...
关于C++指针的
答:
指向函数的
指针
:他就指向一个函数,使用指针会提高程序的运行效率,因为
C++
在运行数据是是:int a ;他先找到a 的地址,然后再去改变他的值,而指针则少去了去找a 的地址的工作,所以运行效率高。指向函数的指针跟指向数据的指针是一样的。不用想得太复杂。
在
C++
种,
关于指针的
这两种表示有什么区别:double * a和double ** a...
答:
1、double * a;意思是a指向一个double变量的地址。2、double **a;意思是a指向一个地址,而这个地址指向一个double变量。在计算机科学中,
指针
(Pointer)为编程语言中的一个对象,利用地址,它的值直接指向(points to)存在电脑存储器中另一个地方的值。
C++的指针
是什么意思
答:
指针,在C/
C++
语言中一直是很受宠的;几乎找不到一个不使用
指针的
C/C++应用。用于存储数据和程序的地址,这是指针的基本功能。用于指向整型数,用整数指针(int*);指向浮点数用浮点数指针(float*);指向结构,用对应的结构指针(struct xxx *);指向任意地址,用无类型指针(void*)。有时候,我们需要...
c++
智能
指针
有哪些
答:
在
C++
编程中,智能指针绝对是很强大的用法,boost库里把这些指针用的出神入化,它可以简化程序员写代码的复杂度,不用去考虑代码分支路径导致的遗漏delete语法,也无须担心冗余delete导致的double free问题。但是,便利性也要求程序猿熟悉各种
指针的
用法,避免误用,反而带来其他问题。下面简要列下常用的智能...
关于C++指针的
问题,分别代表什么?
答:
(int*)str表达式:将变量str强制类型转换为int*类型的
指针
类型;(注意:*号,解引用符)备注:int(*p)表达式是
C++的
写法,(int)(*p)表达式是C语言的写法,这两种写法在C++中是等价的。int main(){ int *p1; //声明一个指针变量 int* p2; //声明一个指针变量 int (*p3);...
c++
智能
指针
用法
答:
智能
指针
是
c++
中有四个智能指针: auto_ptr、shared_ptr、weak_ptr、unique_ptr ,其中后三个是c++11支持,并且第一个已经被c++11弃用。 智能指针是一个 RAII(Resource Acquisition is initialization) 类模型,用来动态的分配内存。当超出类的作用域时,类会自动调用析构函数,析构函数会自动...
大家正在搜
一个指针赋值给另一个指针
把指针赋值给指针
指向数组的指针
C++指针
c++指针详解
指针数组的使用
类的指针
c++this指针
数组与指针的区别