指向函数的指针

系统 1746 0
指向函数的指针变量的一般形式为:
数据类型   (*指针变量名)(函数参数表列);
如:  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;
}
 

运行结果:

 

指向函数的指针  

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

 

指向函数的指针


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论