函数指针和指针函数区别_第1页
函数指针和指针函数区别_第2页
函数指针和指针函数区别_第3页
函数指针和指针函数区别_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 22 23 24 25 26 27 28 a=(*p(1, 2; cout << "a = " << a << endl; cout << "*q = " << *q << endl; return 0; 这里,函数 find(被定义为指针函数,指针 p 被定义为函数指针类型。Main 函数中调用 find(函数时,将 数组中第二个元素的地址和偏移量 1 传入,返回的应该是数组中第三个元素的地址。对于指针 p,在 21 行被赋为 max(函数的地址,因此在 22 行使用指针 p 就

2、能完成调用 max(函数的目的。输出如下: a=2 *q = 30 答案: 指针函数是返回指针类型的函数。 函数指针是指向函数地址的指针。 详述函数指针和指针函数的区别 工作日志 2009-05-15 17:42 阅读 22 评论 0 字号: 大大 中中 小小 简单 的说,函数指针和指针函数是完全不一样的概念,这里写出来只是说比较容易混淆,函数指针 是一个指针,是一个指向函数的指针.指针函数是一个函数,是一个返回值是指针的函数. 1. 函数指针:在程序运行中,函数代码是程序的算法指令部分,他们和数组一样占 据存储空间,一样拥有相应的地址。可以使用指针变量指向数组的首地址,也可以用指针变 量指向

3、函数代码的首地址,指向函数代码的首地址的指针变量就是函数指针。 1 函数指针的定义 (* 指针变量名) (形参列表) 函数类型 “函数类型”说明函数的返回类型,由于运算符具有优先级,所以指针变量名外面的括号不能 省略,后面的”形参列表”表示指针变量指向的函数所带的参数列表. 列如: int (* pointer1 (int x; (double x; double (* pointer2 在定义函数指针时注意: 1 2 函数指针和他指向的函数的参数个数和类型都应该是一致的; 函数指针的类型和函数的返回值类型也必须是一致的. 2 函数指针的赋值 函数名和数组名一样代表了函数代码的首地址,因此在赋

4、值时,直接将函数指针指向函数名就 行了 列如: int int function(int x;/声明一个函数 (* pointer (int x;/声明一个函数指针 pointer=function;/将函数 function 的首地址赋值给指针 pointer 赋值时函数 function 不带括号,也不带参数,由于 function 代表函数的首地址,因此经过赋值后, 指针 pointer 就指向了函数 function(x的代码的首地址. 3 通过函数指针调用函数 函数指针是通过函数名及有关参数进行调用,与其他指针变量类似,如果指针变量 pi 是指向某 整形变量 i,则 *pi 等于他所

5、指向的变量 i. 同样的,*pointer 是指向函数 function(x 的指针,那么 *pointer 就代表他所指向的函数 function(x.所以在执行完了 pointer=function 后,(* pointer和 function 就代表同一函数. 由于函数指针指向存储区域中的某个函数,因此可以通过函数指针调用相应的函数,现在我们 就讨论如何用函数指针调用函数,有一下三个步骤: 1 2 要说明函数指针变量:int (* pointer (int x; 要对函数指针变量赋值:pointer=function; 3 要用(* 指针变量 (参数表;调用函数:(* pointer(x 2. 指针函数:一个函数不仅可以带回一个整形数据的值,字符类型值和实类型的值,还 可以带回指针类型的数据,使其指向某个地址单元 1 返回指针的函数定义: * 函数名(参数表 类型标识符 int *function(int x,int y; 其 中 x,y 是 形 式 参 数 ,function 是 函 数 名 , 调 用 后 返 回 一 个 指 向 整 形 数 据 的 地 址

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论