当前位置: 首页 > news >正文

8.5 【C语言】指向函数的指针

8.5.1 什么是函数的指针

每次调用函数时都从该地址入口开始执行此段函数代码。函数名代表函数的起始地址。

8.5.2 用函数指针变量调用函数

例8.22 用函数求整数a和b中的大者

解题思路:在主函数调用max函数,除了可以通过函数名调用外,还可以通过指向函数的指针变量来实现。

#include<stdio.h>
int main(){int max(int,int);      //函数声明int a,b,c;printf("please enter a and b:");scanf("%d,%d,&a,&b");c=max(a,b);           //通过函数名调用max函数printf("a=%d\nb=%d\nmax=%d\n"a,b,c);return 0;
}
int max(int x,int y){int z;if(x>y) z=x;else    z=y;return(z);
}

(2)通过指针变量调用它所指向的函数

#include<stdio.h>{int main(){int max(int,int);   //函数声明int(*p)(int,int);  //定义指向函数的指针变量pint a,b,c;p=max;printf("please enter a and b:");scanf("%d,%d",&a,&b);c=(*p)(a,b);    //通过指针变量调用max函数printf("a=%d\nb=%d\nmax=%d\n",a,b,c);return 0;            }int max(int x,int y){int z;if(x>y) z=x;else    z=y;return(z);   }
}

8.5.3 怎样定义和使用指向函数的指针变量

类型名(*指针变量名)(函数参数表列)

(1)定义指向函数的指针变量,并不意味着这个指针变量可以指向任何函数,它只能指向在定义时指定的类型的函数。

(2)如果要用指针调用函数,必须先使指针变量指向该函数。

(3)在给函数指针变量赋值时,只须给出函数名而不必给出参数。

(4)用函数指针变量调用函数时,只须将(*p)代替函数名即可。

(5)对指向函数的指针变量不能进行算术运算,如p+n,p++,p--等运算是无意义的。

(6)用函数名调用函数,只能调用所指定的一个函数。

8.5.4 用指向函数的指针作函数参数

指向函数的指针变量的一个重要用途是把函数的入口地址作为参数传递到其他函数。

http://www.lryc.cn/news/140538.html

相关文章:

  • C++实现字符串的逆置
  • 论Spring或Spring Boot的花式扩展
  • 如何评估分类模型的好坏
  • ● 84.柱状图中最大的矩形
  • 未检查的转换: ‘java.lang.Object‘ 转换为 ‘java.util.List
  • 【C语言】使用C语言,实现九九乘法表(另附Python、Java、JavaScript实现方式)
  • [机缘参悟-102] :IT人 - 管理的本质?管理人与从事技术的本质区别?人性、冰山模型、需求层次模型
  • [论文阅读笔记26]Tracking Everything Everywhere All at Once
  • 【Java 动态数据统计图】前后端对接数据格式(Map返回数组格式数据)六(120)
  • ❤ 给自己的mac系统上安装java环境
  • Java-匿名类
  • Maven的超级POM
  • 软考高级系统架构设计师系列论文九十二:论新技术的引进
  • vue使用Bootstrap的详细方法
  • leetcode做题笔记103. 二叉树的锯齿形层序遍历
  • 如果将PC电脑变成web服务器:利用Nignx反向代理绕过运营商对80端口封锁
  • Eureka:服务注册-信息配置-自我保护机制
  • C++二叉树进阶
  • layui tree组件取消勾选
  • 【Android基础面试题】ViewPager与ViewPager2的区别
  • springCloudGateway网关配置
  • kali 2023.3新增工具
  • W25Q64 驱动--基于SPI2接口
  • 禁用无线键盘指定按键
  • 分数规划(二分)
  • Vue2向Vue3过度Vue3状态管理工具Pinia
  • STM32--SPI通信与W25Q64(1)
  • 版本控制工具Git常见用法
  • Multisim软件安装包分享(附安装教程)
  • 【android12-linux-5.1】【ST芯片】HAL移植后开机卡死