转自:http://hi.baidu.com/%C6%BF%D6%D0%B5%C4%C5%AE%CE%D7/blog/item/387db9ddaa54d0a9cd1166fa.html

函数指针:1。指针变量 2。指针变量指向函数

这正如用指针变量可指向整型变量、字符型、数组一样。

在编译时,每一个函数都有一个入口地址,该入口地址就是函数指针所指向的地址。

可利用该指针变量调用函数,就如同用指针变量可引用其他类型变量一样,在这些概念上

一致的。事实上,每一个函数,即使它不带有返回某种类型的指针,它本身都有一个入口

地址,该地址相当于函数名

 尽管函数不是变量,但它在内存中仍有其物理地址,该地址能够赋给指针变量。获取函数

方法是:用不带有括号和参数的函数名得到。

函数名相当于一个指向其函数入口指针常量。   

函数名后面加圆括号,表示函数调用

若要得到函数的地址,直接用函数名就可以了

##############################################################

 指针/函数和函数/指针的区别

  1,   指针函数:指带指针的函数,即本质是一个函数。

2.   指针函数返回类型是某一类型的指针。

##############################################################

函数指针有两个用途:调用函数和做函数的参数。函数指针的说明方法为:

  数据类型标志符 (指针变量名)(形参列表);

  注1:“函数类型”说明函数的返回类型,由于“()”的优先级高于“*”,所以指针变量名

外的括号必不可少,后面的“形参列表”表示指针变量指向的函数所带的参数列表。例

  int func(int x); /* 声明一个函数 */

  int (*f) (int x); /* 声明一个函数指针 */

  f=func; /* 将func函数的首地址赋给指针f */

  赋值时函数func不带括号,也不带参数,func代表函数的首地址

  注2:函数括号中的形参可有可无,视情况而定。

  下面的程序说明了函数指针调用函数的方法:

  例一、

  #include

  int max(int x,int y){ return(x>y?x:y); }

  void main()

  {

  int (*ptr)(int, int);

  int a,b,c;

  ptr=max;

  scanf("%d,%d",&a,&b);

  c=(*ptr)(a,b);

  printf("a=%d,b=%d,max=%d",a,b,c);

  }

 实际上ptr和max都指向同一个入口地址,不同就是ptr是一个指针变量,不像

函数名称那样是死的,它可以指向任何函数

注意,指向函数的指针变量没有++和--运算

#################################################################################  

函数名/函数地址/函数指针相关推荐

  1. 函数名地址、函数名取地址、函数名解引用问题

    以下,转载自http://blog.sina.com.cn/s/blog_6aafe9c90100xg2y.html 对一个函数进行 如下操作: 1.函数名地址 2.函数名取地址 3.函数名解引用 它 ...

  2. 函数调用通过函数名字符串调用函数【C语言版】

    在写这篇文章之前,xxx已经写过了几篇关于改函数调用主题的文章,想要了解的朋友可以去翻一下之前的文章 问题引入 在C中,函数先定义,后使用.举个简单的例子 /********************* ...

  3. 通过函数名字符串调用函数【C语言版】

    问题引入 在C中,函数先定义,后使用.举个简单的例子 /************************ * add by oscar999 ************************/ fun ...

  4. 199 c 通过函数名字符串调用函数

    通过函数名字符串调用函数 今天写c的作业时候想起来能不能用函数名字符串来调用函数 一.函数指针 第一个问题,函数名如何保存,我们需要用到函数指针 声明 type (*func)(type &, ...

  5. c语言 怎么将字符串代入函数,通过函数名字符串调用函数【C语言版】

    问题引入 在C中,函数先定义,后使用.举个简单的例子 /************************ * add by oscar999 ************************/ fun ...

  6. 0717Python总结-return返回值,全局及局部变量,函数名的使用,函数的嵌套,nonlocal修改局部变量,及locals和globals

    一.return 返回值 自定义函数的返回值,return 可以把值返回到函数的调用处 (1) return + 六大标准数据类型 , 还有类和对象,函数 如果不定义return , 默认返回的是No ...

  7. python-return_全局局部变量_函数名用法_函数嵌套

    函数 1. return 返回值 作用: ​ 自定义函数的返回值,return 可以把值返回到函数的调用处 ​ return + 六大标准数据类型 , 还有类和对象,函数 ​ 如果不定义return ...

  8. JS根据函数名字符串调用函数

    转自百度知道:https://zhidao.baidu.com/question/1733819401878068867.html <script type="text/javascr ...

  9. 剖析数组名、函数名(不是指针常量,更不是指针)

    对于一个数组,如 int a[4];  如果只是给出数组名a,编译器不知道该取该数组的第几个元素,因此编译器不会自动取值,而是返回该数组的首地址(第一个元素的地址).其实,数组名a就是数组本身,并不是 ...

  10. c语言漫函数,漫谈C指针:函数名其实也是指针

    一般的函数调用 一个通常的函数调用的例子: /* 自行包含头文件 */ void MyFun(int x); /* 此处的声明也可写成:void MyFun(int) */ int main(int ...

最新文章

  1. easypoi实现Excel导入
  2. android 的listview 3大优化策略
  3. Metal之探究理解视频渲染RGB与YUV颜色编码
  4. netsh 查询mac地址_ARP(Address Resolution Protocol)地址解析协议
  5. JVM类加载机制_字节码执行引擎_Java内存模型
  6. python模拟猫狗大战_tensorflow实现猫狗大战(分类算法)-阿里云开发者社区
  7. 回溯法|Backtracking
  8. Phoca Gallery Images 去除 logo
  9. 贵州省谷歌地球高程DEM等高线下载
  10. windowsxp系统怎么装iis服务器,win xp系统安装IIS的详细步骤【图文】
  11. 智慧路灯杆会用到哪些通信方式
  12. JavaWeb笔记01(mysql)
  13. java里获取当前月份_Java如何获取当前月份的名称?
  14. 详版大数据报告_如何制作大数据报告
  15. 深度学习入门 (九):卷积层和池化层的实现
  16. 优化器介绍—SGD、Adam、Adagrad
  17. 基于NodeJs的微信第三方平台认证授权流程
  18. 【松岩盘前视点】2019-9-11
  19. 南京理工大计算机专业介绍,南京理工大学计算机科学与技术专业介绍
  20. 千月影视H5升级包用来优化ios打包

热门文章

  1. 将html代码转换为dom,将HTML字符转换为DOM节点并动态添加到文档中
  2. mysql多表成绩查询_MySQL多表数据记录查询(一)
  3. cam350怎么看顶层_蛋糕胚速学教程大全,适合初学者看哦!
  4. python中列表和元组的相同点和不同点_详解Python语言中元组和列表的区别
  5. java结构体系_java io结构体系
  6. 变压器符号_行输出变压器的结构、符号及电路分析
  7. 亿佰特Lora网关技术为马拉松保驾护航
  8. php登陆框_PHP 登录完成跳转上一访问页面
  9. c语言中系统函数设定像素,在imag中对每个像素应用自定义函数的快速方法
  10. 掌握java_如何才算掌握Java,大家都掌握到什么程度