首页 > 其他分享 >指向函数的指针

指向函数的指针

时间:2022-10-10 11:36:53浏览次数:51  
标签:函数 指向 int max outcome 指针

  • 定义指向函数的指针变量,形式上用(*p)取代max,int(*p)(int,int)
  • 使p指向max函数,p=max
  • 通过指针变量调用max函数,形式上用(*p)取代max,c=(*p)(a,b)

1. 通过指针变量访问它所指向的函数实现求出两个整数中的大者:

#include <stdio.h>
int main()
{
    int max(int x,int y);
    int (*p)(int x,int y);//声明指向指针的函数
    p=max;//指向max函数
    int a,b,outcome;
    scanf("%d%d",&a,&b);
    outcome=(*p)(a,b);//调用指向指针的函数
    printf("%d",outcome);
    return 0;
}
int max(int x,int y)
{
    int max;
    if(x>y)
    {
        max=x;
    }
    else
    {
        max=y;
    }
    return max;
}

2. 有两个整数a和b,由用户输入1,2,3。

如输入1,程序就给出a和b中的大者;输入2,就给出a和b中的小者;输入3,则求a和b之和(a=34,b=-21)。

#include <stdio.h>
int main()
{
    int max(int x,int y);
    int min(int x,int y);
    int sum(int x,int y);
    int (*p)(int x,int y);//指向函数的指针
    int n,a=34,b=-21,outcome;
    scanf("%d",&n);
    if(n==1)
    {
        p=max;
        outcome=(*p)(a,b);
        printf("%d",outcome);
    }
    else if(n==2)
    {
        p=min;
        outcome=(*p)(a,b);
        printf("%d",outcome);
    }
    else if(n==3)
    {
        p=sum;
        outcome=(*p)(a,b);
        printf("%d",outcome);
    }
    return 0;
}
int max(int x,int y)
{
    int max;
    if(x>y)
    {
        max=x;
    }
    else
    {
        max=y;
    }
    return max;
}
int min(int x,int y)
{
    int min;
    if(x<y)
    {
        min=x;
    }
    else
    {
        min=y;
    }
    return min;
}
int sum(int x,int y)
{
    int sum;
    sum=x+y;
    return sum;
}

-END

标签:函数,指向,int,max,outcome,指针
From: https://www.cnblogs.com/peitongshi/p/16775027.html

相关文章