指向函数的指针

指向函数的指针变量的一般形式为:
数据类型   (*指针变量名)(函数参数表列);
如:  int (*p)(int ,int );
1、int (*p)(int ,int );表示定义一个指向函数的指针变量p,它不是固定只能指向某一个函数。在一个程序中,一个指针变量可以先后指向同类型的不同函数。
2、给函数指针赋值时,只须给出函数名而不必给出参数。
如: p=max;如果写成 p=max(a,b); 是将函数max(a,b);所得到的函数值赋给p,而不是将函数入口赋给p
3、用函数指针变量调用函数时,只须将(*p)代替函数名即可。如: c=(*p)(a,b);
4、指向函数的指针变量,像p+n、p++、p--等运算是无意义的。
代码:
输入两个整数,然后用户选择1或2,选1输出较大值,选2输出较小值。
程序代码:
#include<stdio.h>
void main()
{
    int max(int ,int );
    int min(int ,int );
    int (*p)(int ,int );
    int a,b,c,n;

    printf("please enter a and b:");
    scanf("%d%d",&a,&b);
    printf("please choose 1 or 2:");
    scanf("%d",&n);

    if(n==1)
        p=max;
    else if(n==2)
        p=min;

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

    if(n==1)
        printf("max=%d\n",c);
    else
        printf("min=%d\n",c);
}


int max(int a,int b)
{
    return a>b?a:b;
}

int min(int a,int b)
{
    return a<b?a:b;
}

运行结果:

 

实用价值在于在应用程序中常用菜单提示输出一个数字,然后根据不同值执行不同的功能,就是用此法。

 

转载于:https://www.cnblogs.com/vitah/p/4605513.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/374885.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

核心Java面试答案不正确

总览 在Internet上&#xff0c;Java面试问题和答案从一个网站复制到另一个网站。 这可能意味着错误或过时的答案可能永远不会得到纠正。 这是一些不太正确或已经过时的问题和答案。 即是Java 5.0之前的版本。 每个提供的问题后都有两个部分。 斜体的第一部分指示答案不完整/错…

138.括号序列(区间型DP)

3657 括号序列 时间限制: 1 s空间限制: 256000 KB题目等级 : 黄金 Gold题解查看运行结果题目描述 Description我们用以下规则定义一个合法的括号序列&#xff1a; &#xff08;1&#xff09;空序列是合法的 &#xff08;2&#xff09;假如S是一个合法的序列&#xff0c;则 (S) …

C# 执行批处理文件(*.bat)的方法代码

代码如下:static void Main(string[] args){Process proc null;try{ string targetDir string.Format("D:\adapters\setup");//this is where mybatch.bat liesproc new Process();proc.StartInfo.WorkingDirectory targetDir;proc.StartInfo.Fil…

C语言空格怎么表示

1.直接敲空格就行&#xff0c;或者使用ASCII码值赋值为32。 空格没有转义字符。 printf("12%c45 58",32);输出 12 45 582.合法转义字符如下&#xff1a;\a 响铃(BEL) 、\b 退格(BS)、\f 换页(FF)、\n 换行(LF)、\r 回车(CR)、\t 水平制表(HT)、\v 垂直制表(VT) 0、…

Tomcat中的零停机部署(和回滚); 演练和清单

亲爱的大家&#xff0c; 如果您认为Tomcat不能再进步&#xff0c;那您就错了。 Tomcat 7引入了所谓的并行部署 。 这是由SpringSource / VMWare贡献的。 简而言之&#xff0c;并行部署是一种能够并行部署一个以上版本的Web应用程序的功能&#xff0c;使所有版本都可以在完全相…

javaweb 学习资源

http://jinnianshilongnian.iteye.com/category/231099转载于:https://www.cnblogs.com/sishahu/p/5368018.html

HDU 1863 畅通工程(最小生成树,prim)

题意&#xff1a; 给出图的边和点数&#xff0c;要求最小生成树的代价&#xff0c;注&#xff1a;有些点之间是不可达的&#xff0c;也就是可能有多个连通图。比如4个点&#xff0c;2条边:1-2&#xff0c;3-4。 思路&#xff1a; 如果不能连通所有的点&#xff0c;就输出‘?’…

2000年不算在21世纪

练习3-5 输出闰年 (15 分) 输出21世纪中截止某个年份以来的所有闰年年份。注意&#xff1a;闰年的判别条件是该年年份能被4整除但不能被100整除、或者能被400整除。 想当然地以为21世纪是2000~2099&#xff0c;当然没有通过 if(N > 2000&&N < 2099){for(int i …

使用迭代器时如何避免ConcurrentModificationException

Java Collection类是快速失败的&#xff0c;这意味着如果在使用迭代器遍历某个线程的同时更改了Collection&#xff0c;则iterator.next&#xff08;&#xff09;将抛出ConcurrentModificationException 。 在多线程以及单线程环境下都可能出现这种情况。 让我们通过以下示例探…

Sublime Text 3实用快捷键大全

下面是我通过网上教程和文本资料学习sublime Text3时收集的一些实用功能和常用快捷键&#xff0c;现在分享出来&#xff0c;如果还有其它的好用的功能可以在下面留言&#xff0c;以便互相学习和交流&#xff0c;谢谢&#xff01;。 选择类 CtrlD 选中光标所占的文本&#xff0c…

Tomcat中配置JNDI数据源

准备工作&#xff1a; Tomcat版本&#xff1a;tomcat6.0以上 下例中均使用MySQL数据库 将对应数据源的jar包和MySQL的驱动包拷贝至tomcat的lib文件夹下 一、全局数据源 1步骤一&#xff1a;配置 在tomcat下的conf/server.xml的GlobalNamingResources节点标签中增加如下配置&…

练习3-8 查询水果价格 (15 分)

练习3-8 查询水果价格 (15 分) 给定四种水果&#xff0c;分别是苹果&#xff08;apple&#xff09;、梨&#xff08;pear&#xff09;、桔子&#xff08;orange&#xff09;、葡萄&#xff08;grape&#xff09;&#xff0c;单价分别对应为3.00元/公斤、2.50元/公斤、4.10元/公…

JavaFX 2.0 beta示例应用程序和思考

我有一段时间回过头来玩JavaFX&#xff0c;并且在使用该语言方面有好有坏的经验。 随着JavaFX 2.0 beta的发布&#xff0c;我想尝试一下。 在这里&#xff0c;我开发了一个简单的地址解析应用程序&#xff0c;该应用程序将使用Google地址编码API来获取地址并提供该位置的纬度-经…

$Android自定义控件在不同状态下的属性

在写代码的时候&#xff0c;有时候需要控件在不同状态下显示不同的外观&#xff0c;比如在按钮按下的时候要变颜色&#xff0c;EditText获取焦点时候边框要变颜色等。那么下面就来梳理一下这些是怎么实现的。 &#xff08;一&#xff09;按钮按下时候变颜色 1、在项目的drawabl…

解析DBR操作系统引导记录数据

理解文件系统。你必须要熟悉DBR&#xff0c;下面我们就来看看文件系统解析DBR数据。 Dos Boot Record(DBR)操作系统引导记录是由操作系统的格式化程序建立的。在文件系统驱动操作不论什么一个磁盘卷时&#xff0c;这一部分的信息将被读取并作为文件系统在这个磁盘卷上的參数被使…

简单冒泡排序

将5个数字按从小到大排序。 #include <stdio.h> #include <stdlib.h> #include <math.h> int main() {int x[5] {0},temp 0;for(int i 0;i<5;i){scanf("%d",&x[i]);}//冒泡排序&#xff08;升序&#xff09;for(int j 0;j<4;j)//n个…

YouTube Java API入门

在本教程中&#xff0c;我将介绍Google的YouTube API &#xff0c;该API可让您使用YouTube的功能来启用应用程序。 YouTube是“杀手级”互联网应用程序之一&#xff0c;其流量占互联网总流量的很大一部分。 在开始之前&#xff0c;请确保您已阅读《 API概述指南》 。 我们将主…

mysql在mac上的坑

默认端口3306&#xff1f; 正确答案&#xff1a;3307 转载于:https://www.cnblogs.com/dudream/p/5375551.html

ServletContext图解

servlet之间共享数据资源&#xff01; 转载于:https://www.cnblogs.com/felixzh/p/4615902.html

C语言怎么输出百分号%

规律&#xff1a;printf函数中&#xff0c;当出现多个%时&#xff0c;由左至右&#xff0c;每两个%结合输出一个% #include <stdio.h> #include <stdlib.h> #include <math.h> int main() {int c 52;printf("% \n %% \n %%% \n %%%% \n %%%%% \n %%%%…