我看傻了,所以整理一下。

指针函数

类型标识符*  函数名(参数表);

举例:int* fx(int x,int y);

解释:

第一ta是个函数

第二指针函数的返回的是地址,ps这边没读懂?来看一个例子。

#include <stdio.h>  int* fun(int *a)
{  return a;
}  int main(int argc, char **argv)
{  int a = 3;  printf("%d", *(fun(&a)));  return 0;
}  

感觉没什么作用,指针函数,代表一个函数的返回值是指针,所以void*返回值类型为void类型的地址值。

函数指针

实际可以这样理解,指向变量的指针变量(例:int *p)和指向函数的指针变量,在定义上是不同的。//

  1. int(*pfunction)(int, int);//

“定义了一个指针变量 pfunction,该指针变量可以指向返回值类型为 int 型(关键一),且有两个整型参数的函数(关键二)。pfunction 的类型为 int(*)(int,int)。 ”

这个语句就定义了一个指向函数的指针变量 pfunction。首先它是一个指针变量,所以要有一个“*”,即(*p);其次前面的 int 表示这个指针变量可以指向返回值类型为 int 型的函数;后面括号中的两个 int 表示这个指针变量可以指向有两个参数且都是 int 型的函数。

函数返回值类型 (* 指针变量名) (函数参数列表);

函数返回值类型:表示该指针变量可以指向具体什么返回值类型的函数;//返回值类型与返回值密切相关。

函数参数列表:表示该指针变量可以指向具有什么参数列表的函数。

区分:

指向变量的指针变量。int* p

指向函数的指针变量。int(*p)(int,int)

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

int(*p)(int x);//定义一个函数指针

p=func; //将func函数的首地址赋给指针变量p

#include <stdio.h>
int MAX(int a,int b);
int main(void)
{int a,b,c;scanf("%d%d",&a,&b);int (*compare)(int a,int b);compare=MAX;//MAX这么用没问题吗,函数名就是地址 c=compare(a,b);printf("%d",c);return 0;
}
int MAX(int a,int b)
{int z;z=a>b?a:b;//return z;
}

其中

comepare=MAX;//第一种取值方式
compare=&MAX;//第二种取值方式//MAX是一个函数标识符,他的名字就是他的地址,如果是函数调用,

其中中>>叠词警告

c=compare(a,b);//第一种书写方式
c=(*compare)(a,b);//第二种书写方式

这是函数指针比较特殊的情况,也使函数指针变的异常好用。

总结:

1.与指针函数不同,函数指针 的本质是一个指针,该指针的地址指向了一个函数,所以它是指向函数的指针。

2.指针函数: 它的本质是一个函数,不过它的返回值是一个指针。

3.重点是后面两个。

参考总结:

1.指针函数和函数指针_禹鼎侯的博客-CSDN博客_指针函数和函数指针

C语言指针函数和函数指针相关推荐

  1. 【C 语言】一级指针 易犯错误 模型 ( 判定指针合法性 | 数组越界 | 不断修改指针变量值 | 函数中将栈内存数组返回 | 函数间接赋值形参操作 | 指针取值与自增操作 )

    文章目录 一.判定指针合法性 二.数组越界 三.不断修改指针变量值 四.函数中将栈内存数组返回 五.函数间接赋值形参操作 六.指针取值与自增操作 一.判定指针合法性 判定指针合法性时 , 必须进行如下 ...

  2. 【C 语言】指针 与 数组 ( 指针 | 数组 | 指针运算 | 数组访问方式 | 字符串 | 指针数组 | 数组指针 | 多维数组 | 多维指针 | 数组参数 | 函数指针 | 复杂指针解读)

    相关文章链接 : 1.[嵌入式开发]C语言 指针数组 多维数组 2.[嵌入式开发]C语言 命令行参数 函数指针 gdb调试 3.[嵌入式开发]C语言 结构体相关 的 函数 指针 数组 4.[嵌入式开发 ...

  3. 【嵌入式开发】C语言 命令行参数 函数指针 gdb调试

    . 作者 : 万境绝尘 转载请注明出处 : http://blog.csdn.net/shulianghan/article/details/21551397 | http://www.hanshul ...

  4. c语言回调函数_C语言学习第26篇---函数与指针分析 回调函数

    函数类型的概念 1.C语言函数也是有类型的 2.函数类型由函数返回值,参数类型,参数个数共同决定 int add(int i,int j) 的类型是 int(int , int) 3.C语言中通过ty ...

  5. C语言enum(枚举)、指针、函数指针

    C enum(枚举) 枚举是c语言中的一种数据类型,定义格式为 enum 枚举名{枚举元素1,枚举元素2,......}; 用#define定义一星期七天,就要为每个整数定义一个别名 #define ...

  6. C语言的指针函数与函数指针

    该博文为原创文章,未经博主同意不得转载,如同意转载请注明博文出处 本文章博客地址:https://cplusplus.blog.csdn.net/article/details/104992050 指 ...

  7. C语言程序设计 | 指针(二):常量指针和指针常量、数组参数和指针参数、函数指针数组

    指针的进阶(二)目录: 常量指针和指针常量 数组参数和指针参数 函数指针数组 常量指针和指针常量 在我们日常中,经常会用到一个关键字const const是一个C语言(ANSI C)的关键字,具有着举 ...

  8. c语言指针自定义函数,c语言函数指针定义,指针函数和函数指针的区别

    往往,我们一提到指针函数和函数指针的时候,就有很多人弄不懂.下面就由小编详细为大家介绍C语言中函数指针,指针函数和函数指针之间的区别. c语言指针函数定义: 函数指针是指向函数的指针变量. 因此&qu ...

  9. 【C语言进阶深度学习记录】三十二 函数指针与使用函数指针实现回调函数

    回调函数是非常重要的概念 文章目录 1 函数的类型 2 函数指针 2.1 函数指针的使用 2.2 使用函数指针实现回调函数 3 总结 1 函数的类型 跟以前学数组的时候是一样的,C语言中的数组是有自己 ...

  10. typedef函数指针_C语言函数指针之回调函数

    1 什么是回调函数? 首先什么是"回调"呢? 我的理解是:把一段可执行的代码像参数传递那样传给其他代码,而这段代码会在某个时刻被调用执行,这就叫做回调. 如果代码立即被执行就称为同 ...

最新文章

  1. 【转载】关于RabbitMQ的消息确认
  2. mysql数据库访问控制_一文总结MySQL数据库访问控制实现原理
  3. promise是什么?简单分析promise原理
  4. ORA-01157报错cannot identify/lock data file
  5. 【图像增强】基于matlab GUI暗通道图像去雾【含Matlab源码 835期】
  6. DB9串口线定义的解析
  7. c语言中.cpp英文全称,.cpp与.c的区别
  8. 计算机笔记--【Java设计模式】
  9. C/S架构的优点和缺点
  10. Django 修改时区时间
  11. 深入理解Spring----PostConstruct和PreDestroy
  12. android 动态壁纸 波浪效果,移动的波纹动态壁纸
  13. 关于css设置元素垂直水平居中的问题
  14. Telerik Silverlight 之Charting控件的使用
  15. 524. 愤怒的小鸟
  16. matlab 求留数,用matlab求留数
  17. excel 数据匹配、数据对应、建立数据映射关系(设置A对应1、B对应2)
  18. 自己动手构造编译系统:编译、汇编与链接
  19. 还记得曾经风起云涌的雨林木风了吗?
  20. 朝花夕拾教学课件PPT模板

热门文章

  1. python怎么把特殊字符打出来_python 过滤特殊字符 (emoji)
  2. 如何下载SHP矢量格式的等高线
  3. c语言奥林匹克大赛真题,全球首发!1-58届国际数学奥林匹克真题及解析大合集,350道必刷、必看、必收藏的巅峰之题与巧解妙解......
  4. Python二手车价格预测(一)—— 数据处理
  5. (22)Linux基础-系统磁盘配额quota
  6. OSG学习:用多通道(multiple passes)实现透明度
  7. 使用OfficeDeploymentTool工具离线下载安装Office
  8. excel改变列的位置
  9. Boost_Asio(4) strand
  10. 微信小程序全局音频播放,实现分析