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

/**有2个整数a,b,有用户输入1,2,或3,如输入1,
程序就给出a和b中大者,输入2,就给出a和b中小者,
输入3,就给出a和b的和**/
#include <stdio.h>
#include <stdlib.h>

int main()
{
    int f(int x,int y,int (*p)(int ,int ));
    int max(int x,int y);
    int min(int x,int y);
    int sum(int x,int y);
    int a=34,b=-10;
    int n;
    scanf("%d",&n);
    if(n==1)
        f(a,b,max);
    if(n==2)
        f(a,b,min);
    if(n==3)
        f(a,b,sum);
    return 0;
}
int f(int x,int y,int (*p)(int ,int ))
{
    int ss;
    ss=(*p)(x,y);
    printf("%d\n",ss);
    return 0;
}
int max(int x,int y)
{
    int z;
    if(x>y)
        z=x;
    else
        z=y;
    return z;
}
int min(int x,int y)
{
    int z;
    if(x>y)
        z=y;
    else
        z=x;
    return z;
}
int sum(int x,int y)
{
    return x+y;
}
时间: 2024-09-13 04:33:41

用指向函数的指针作函数参数的相关文章

C++中用指向数组的指针作函数参数_C 语言

1.一维数组名作为函数参数传递一位数组名,就相当于该数组的首个元素的地址: 复制代码 代码如下: int a[10];int *p;p=a;//p=a与p=&a[0]是等价的 实例代码: 复制代码 代码如下: #include<iostream>using namespace std;int main(){ int a[10]={1,2,3,4,5,6,7,8,9,10}; void Print(int *p ,int n); Print(a,10); cout<<endl

C语言及程序设计提高例程-25 指针作函数参数

贺老师教学链接  C语言及程序设计提高 本课讲解 例:冒泡排序函数的新写法 #include <stdio.h> void bubblesort(int*, int); int main( ) { int i,a[10]= {3,5,9,1,3,6,-9,-7,10,12}; bubblesort(a,10); for(i=0; i<10; i++) printf("%d ", a[i]); return 0; } void bubblesort(int *p, in

《C和C++代码精粹》——2.13 指向成员函数的指针

2.13 指向成员函数的指针 C和C++代码精粹如果返调函数是某个类的成员函数将会怎样?获得指向类成员的指针与获得指向非成员实体的指针的方式相似,只存在很小的语法变化.例如,考虑下面类的定义: class C { public: void f ( ) {cout << "C::f\n";} void g( ) {cout << "C::g\n";} }; 可以这样定义一个指向C类成员函数的指针: void (C::*pmf) ( ); //

2013-7-10学习笔记[字符串操作,指向函数的指针]

字符串处理函数1.strlen函数 这个函数可以用来测量字符串的字符个数,不包括\0 int size = strlen("mj"); // 长度为2     char s1[] = "lmj";  int size1 = strlen(s1); // 长度为3     char s2[] = {'m', 'j', '\0', 'l', 'm', 'j', '\0'};  int size2 = strlen(s2); // 长度为2    //在统计字符长度的时候

C++中返回指向函数的指针示例_C 语言

在C++中,函数的形参可以是指向函数的指针,函数也可以返回函数的指针.例如:int (*ff(int)) (int *,int);表示:ff(int)是一个函数,带有一个int型的形参,该函数返回int (*) (int *,int),它是一个指向函数的指针,所指向的函数返回int型并带有两个分别是Int*和int型的形参.使用typedef可使得定义更加易懂:typedef int (*PF) (int *,int);PF ff(int);下面给出一个例子: 复制代码 代码如下: #inclu

如何使用指向类的成员函数的指针(详解!)

我们首先复习一下"指向函数的指针"如何使用?   [cpp] view plain copy    print? void print()   {   }   void (*pfun)(); //声明一个指向函数的指针,函数的参数是 void,函数的返回值是 void   pfun = print;   //赋值一个指向函数的指针   (*pfun)();    //使用一个指向函数的指针     比较简单,不是吗?为什么*pfun需要用()扩起来呢? 因为*的运算符优先级比()低,如

如何通过函数指针调用函数(实现代码)_C 语言

说明:指针可以不但可以指向一个整形,浮点型,字符型,字符串型的变量,也可以指向相应的数组,而且还可以指向一个函数. 一个函数在编译的时候会被分配给一个入口地址.这个函数入口地址称为函数的指针.可以用一个指针变量指向函数,然后通过该指针变量调用此函数. 定义指向函数的指针变量的方法是: 复制代码 代码如下: int (*p) (int ,int ); int[指针变量p指向的函数的类型] (*p)[p是指向函数的指针变量] ( int,int )[p所指向的形参类型]; 与函数的原型进行比较 复制

C语言中函数 与 指针学习笔记

一.指向函数的指针 函数名可以在表达式中被解读成"指向函数的指针",因此,正如代码清单 2-2 的实验那样,写成 func 就可以取得指向函数的指针. "指向函数的指针"本质上也是指针(地址),所以可以将它赋给指针型变量. 比如有下面的函数原型: int func(double d); 保存指向此函数的指针的变量的声明如下: int (*func_p)(double); 然后写成下面这样,就可以通过 func_p 调用 func, int (*func_p)(dou

将指向结构体对象的指针作为函数参数,调用p-&amp;amp;gt;时调试报错

问题描述 将指向结构体对象的指针作为函数参数,调用p->时调试报错 void deleteelement(linearlist *list, int power) { linearlist *p = list; while (p->power != power && p->next != NULL) //调试时显示错误在这一行 { p = p->next; } if (p->power == power) { linearlist *dele = p; p =